循环结构

for循环

package com.itheima.loopdemo;

public class ForDemo1 {
    public static void main(String[] args){
        for (int i = 1;i <= 5 ;i++){
            System.out.println("HelloWorld!");
        }
    }
}

package com.itheima.loopdemo;

public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        int sum1 = 0;
        for(int i = 1;i <=5;i++){
            sum1 += i;
            System.out.println(sum1);
        }
//扩展小点:
//1.求和的变量不能定义在循环的里面,因为变量只在所属的大括号中有效
//2.如果我们把变量定义在循环的里面,那么当前变量只能在本次循环中有效。
//当本次循环结束之后,变量就会从内存中消失。
//第二次循环开始的时候,又会重新定义一个新的变量。
//结论:如果以后我们要写累加求和的变量。可以把变量定义在循环的外面。
//可以把得到的每一个数字累加到变量sum当中
        for(int i = 1;i <=5;i++){
            int sum2 = 0;
            sum2 += i;
            System.out.println(sum2);
        }
    }
}
while循环

package com.itheima.loopdemo;

public class ForDemo1 {
    private static int sum;

    public static void main(String[] args){
        double num = 0.1;
        int a = 0;
        while(num<=8844430){
            num = num*2;
            a++;
        }
        System.out.println(a);
    }
}

package com.itheima.loopdemo;
import java.util.Scanner;

public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        System.out.println("请输入一个数字:");
        Scanner sc =new Scanner(System.in);
        int x= sc.nextInt();
        System.out.println(x);
        //定义数字
        int temp = x;
        //定义一个临时变量用于记录x原来的值,用于最后进行比较
        int num = 0;
        //利用循环开始
        while(x != 0){
            int ge = x % 10;
            //从右获取每一位数字
            x = x / 10;
            //修改x记录的值
            num = num*10 +ge;
            //把当前获取到的数字拼接到最右边
        }
        System.out.println(num);
        System.out.println(x);
        System.out.println(num == temp);
    }
}

感觉不够压力,再加个键盘录入

循环高级

无限循环

package com.itheima.loopdemo;
import java.util.Scanner;

public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        /*for(;;){
            System.out.println("学习");
        }*/
        while(true){
            System.out.println("学习");
        }
    }
}
//无限循环的下面不能再写其他代码了,因为循环永远难停不下来,下面的代码永远执行不到

两种无限循环体

跳转控制语句
continue

package com.itheima.loopdemo;
import java.util.Scanner;

public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        for(int i =1;i <=5;i++){
            if(i == 3){
                continue;
            }
            System.out.println("小老虎在吃第" + i + "个包子");
        }
    }
}

结束本次循环

break

package com.itheima.loopdemo;
import java.util.Scanner;

public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        for(int i =1;i <=5;i++){
            if(i == 3){
                break;
            }
            System.out.println("小老虎在吃第" + i + "个包子");
        }
    }
}

结束整个循环

package com.itheima.loopdemo;
import java.util.Scanner;
public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        for(int i =1;i <=100;i++){
            if(i % 10 == 7 ||i /10 % 10 ==7 ||i % 7 == 0){
                System.out.println("过");
                continue;
            }
            System.out.println(i);
        }
    }
}

package com.itheima.loopdemo;
import java.util.Scanner;

public class ForDemo1 {
    private static int sum;
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num = sc.nextInt();
        for(int i = 1;i<=num;i++){
            if(i * i == num){
                System.out.println(i + "是" + num + "的算术平方根的整数部分");
                break;
            }
            if(i * i > num){
                System.out.println(i-1 + "是" + num + "的算术平方根的整数部分");
                break;
            }
        }
    }
}
随机数

数组

数组介绍

数组的定义与静态初始化

//扩展:
//解释一下地址值的格式含义[D@776ec8df1
//[:表示当前是一个数组//D:表示当前数组里面的元素都是double类型的
//@:表示一个间隔符号。(固定格式,没有任何的含义)
//776ec8df:才是数组真正的地址值,(十六进制)
//平时我们习惯性的会把这个整体叫做数组的地址值。

数组元素访问

数组遍历

package com.itheima.loopdemo;

public class test {
    public static void main(String[] args){
        int[] array = {1,2,3,4,5,6,7,8};
        System.out.println(array.length);
    }
}
//在java当中,关于数组的长度属性:length
//调用方式:数组名.length

package com.itheima.loopdemo;

public class test {
    public static void main(String[] args){
        int[] array = {1,2,3,4,5,6,7,8};
        System.out.println(array.length);
        for (int i = 0;i <array.length;i++){
            System.out.println(array[i]);
        }
    }
}

package com.itheima.loopdemo;

public class test {
    public static void main(String[] args){
        int[] array = {2,4,6,8,10};
        System.out.println(array.length);
        int num = 0;
        for (int i = 0;i <array.length;i++){
            System.out.println(array[i]);
            num =num + array[i];
        }
        System.out.println(num);
    }
}
//数组遍历和求和
//i表示数组中的每一个索引
//array[i]表示数组中的每一个元素

package com.itheima.loopdemo;

public class test {
    public static void main(String[] args){
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int num = 0;
        for (int i = 0;i <array.length;i++){
            if(array[i] % 3 ==0){
                num++;
            }
        }
        System.out.println(num);
    }
}

先做后看养成习惯

package com.itheima.loopdemo;

public class test {
    public static void main(String[] args){
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        for (int i = 0;i <array.length;i++){
            if(array[i] % 2 ==1){
                int num1 = 0;
                num1=array[i]*2;
                System.out.println(num1);
            } else if (array[i] % 2 ==0) {
                int num2 = 0;
                num2= array[i] / 2;
                System.out.println(num2);
            }
        }
    }
}

动态初始化

//数组默认初始化值的规律
//整数类型:默认初始化值0
//小数类型:默认初始化值0.0
//字符类型:默认初始化值'/u0000'空格
//布尔类型:默认初始化值 false
//引用数据类型:默认初始化值 nul1

数组常见问题

//小结:
//索引越界异常
//原因:访问了不存在的索引
//避免:索引的范围

数组常见操作

求最值

package com.itheima.loopdemo;

public class test {
    public static void main(String[] args){
        int[] array = {33,5,22,44,55};
        int max = array[0];
        for (int i = 1; i < array.length; i++) {
            if(array[i] > max){
                max = array[i];
            }
        }
        System.out.println(max);
    }
}
//扩展问题:
//1.根据求最大值的思路,自己改写一下求最小值
//2.为什么max要记录为arr[0],默认值不能为0吗?
//不能写
//max的初始化值一定要是数组中的值。
//3.循环中开始条件一定是o吗?
//循环的开始条件如果为0,那么第一次循环的时候是自己跟自己比了一下
//对结果没有任何影响,但是效率偏低
//为了提高效率,减少一次循环的次数,循环开始条件可以写1.
求和

package com.itheima.loopdemo;
import java.util.Random;

public class test {
    public static void main(String[] args){
        int[] array = new int[10];
        Random r =new Random();
        for (int i = 0; i < array.length; i++) {
            //每循环一次,就会生成一个随机数
            int number = r.nextInt(100) + 1;
            //把生成的随机数添加到数组当中
            //数组名[索引] = 数据;
            array[i] = number;
        }
        //一个循环只干一件事情
        for (int i =0;i < array.length;i++){
            System.out.println("第" + ( i + 1 ) + "个数据为" + array[i]);
        }
        int num1 = 0;
        for (int i = 0; i < array.length; i++) {
            num1 =num1 + array[i];
        }
        int count = 0;
        int arg=num1 / array.length;
        for (int i = 0; i < array.length;i++){
            if(array[i] < arg){
                count++;
            }
        }
        System.out.println("数组中所有数据的和:" + num1);
        System.out.println("数组中所有数据的平均数:" + arg);
        System.out.println("数组中所有数据中比平均数小的数据的个数:" + count);
    }
}
//如果觉得一行一个数字太麻烦可以
//System.out.print(array[i]);
//这样就会输出在同一行
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐