1. 程式人生 > >2.7 while 、for 迴圈控制語句

2.7 while 、for 迴圈控制語句

一、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;