一、while语句:

  在程序中,需要重复性的做某件事;

1.1.1 while:

public class Test{
    public static void main(String[] args){

        // 求1-5所有整数的和
        // 0+1+2+3+4+5
        int i = 1; //变量初始化
        int sum = 0;
        while(i <= 5//控制循环条件){
            sum = sum + i;//循环操作
            i++;//循环条件变化
        }
        System.out.println("sum = " + sum);
    }
}
while

1.1.2 while与 if 的结合使用:

public class Test15{
    public static void main(String[] args){
            // 求1-10所有偶数的和
        int j = 1;
        int sum = 0;
        while(j <= 10){
            // 业务逻辑:求偶数的和
            if(j % 2 == 0){
                sum += j;
            }
            j++;
        }
        System.out.println("sum = " +sum);
}
}
while、if

1.1.3 while的嵌套循环:

  外层循环执行一次,内层循环支持n次;

  双层循环解决了需要进行循环嵌套的问题 => 二维结构 => 表格结构;

 

  外层循环控制,内层循环控制列;

 

public class Test01{
    public static void main(String[] args){
        
        int i = 1;
        while(i<=3){
            
            int j = 1;
            while(j <= 4){
                System.out.print("* ");
                j++;
            }
            System.out.println();
            
            i++;
        }
    }
}
while、while

 

1.2 do···while:

public class Test{
    public static void main(String[] args){
        int sum = 0;
        int   i = 1;//变量初始化
        do{
            if(i % 2 == 0){
        sum += i;//循环操作
        }
        i++;//循环控制变化
        }while(i<=10//循环控制条件);   
                 System.out.println(""+sum);
}
}
do while

while 与 do···while 的区别:

  do…while循环先执行,后判断;while先判断后执行。dowhile至少执行一次。

2.1 for 循环:

2.1.1普通 for 循环:

 

public class Test{
    public static void main(String[] args){
            
        //(变量初始化;循环控制条件;循环控制变化)
        for(int i=0;i<=10;i++){
            System.out.println(i);//循环操作
        }
    }
}
for

 

2.1.2 双层for循环:

 

        for(int i=1;i<=3;i++){
            
            for(int j=1;j<=4;j++){
                System.out.print("* ");
            }
            System.out.println();
    }    
for、for

 

2.1.3  复杂的for循环:

 

    int num = 10;
    for(int i=0,j=num;i<=num;i++,j--){
            System.out.println(i+"+"+j+"="+(i+j));
        }

 

2.1.4 特殊的for循环:

 

public class Test13{
    public static void main(String[] args){
        
        // [1]表达式1在for循环外声明
        /*
        int sum = 0;
        int i = 1;
        for(;i<=10;i++){
            sum += i;
        }
        System.out.println("i="+i);
        System.out.println("sum = " + sum);
        */
        
        // [2]省略表达式2 ==> 死循环
        /*
        int sum = 0;
        for(int i = 1;;i++){
            sum += i;
            System.out.println("sum="+sum);
        }
        */
        // System.out.println("sum = " + sum);
        
        // [3]省略表达式3 => 可能导致死循环
        /*
        int sum = 0;
        for(int i = 1;i<=10;){
            sum += i;
            System.out.println("sum="+sum);
            
            i++;
        }
        */
        
        int sum =0;
        int i = 1;
        for(;i<=10;){
            sum += i;
            System.out.println("sum="+sum);
            
            i++;
        }
}
}

 

    //死循环
    for(;;){
}
View Code

  总结:whilefor

  [1]while和for可以相互替换;

  [2]如果明确知道循环次数,一定要for;如果不知道循环次数,优先使用while;