網頁

2013年9月16日 星期一

Ch2_3 for-loop迴圈

for迴圈也是java提供的迴圈結構之一,它的運作方式與while迴圈相同。

for(初始值 ;條件式 ; 步進值 ){
//迴圈敘述
}



  • 這三個部分並非一定都要撰寫,可以是空白的,它們分別以分號(;)相隔且撰寫順序是固定的。
  • 初始值可以有二個以上,但須以逗點「,」隔開。
  • 條件式用來測試初值或步進值是否符合條件需求,若符合則繼續執行迴圈,不符合則離開迴圈。
  • 步進值可以有二個以上,但須以逗點「,」隔開。


這是一般for-loop迴圈:
只有1個for-loop結構,可因實際需要終止或遞迴下去。




巢狀for-loop迴圈:
表示一個for-loop結構中另包含一個或多個for-loop結構,並且可因實際需要不斷遞迴下去。

在for(int i=1;i<=9;i++)  ---->這是外部迴圈
在for(int j=1;j<=9;j++)  ---->這是內部迴圈
外部迴圈執行1次,則內部迴圈要執行9次。


for-loop的無窮迴圈:
for( ; ;  ){
//迴圈敘述
}

在for-loop的結構中可以使用break跳出迴圈,或使用continue立即執行下一個步進敘述。
  • break表示強制跳離該迴圈。
  • continue表示強制直接執行下一個步進敘述。
  • 標籤的使用
continue和break作用範圍限制所在的迴圈,無法作用到更外層的迴圈,原因在於迴圈沒有自己的名稱,這個時候可以使用標籤將迴圈命名,就可以指定continue和break要作用於那一層迴圈。


label:
在定義的標籤名稱label後面務必要加上冒號(:),之後才是接迴圈的敘述句。



範例程式
  • Ch2_3_1 .java
package chapter;

public class Ch2_3_1 {
    public static void main(String[] args) {
       
        for(int i=0;i<=9;i++){
            System.out.print("i="+i+"\t");                                   
        }
    }
}
  • Ch2_3_2 .java
package chapter;

public class Ch2_3_2 {
    public static void main(String[] args) {
       
        for(int i=1;i<=9;i++){
            for(int j=1;j<=9;j++){
                System.out.print(i+"*"+ j+"="+(i*j)+"\t");               
            }
            System.out.println();           
        }
    }

}
  • Ch2_3_3 .java
package chapter;

public class Ch2_3_3 {
    public static void main(String[] args) {
       
        for(int i=1;i<=9;i++){
            for(int j=1;j<=9;j++){
                System.out.print(j+"*"+ i+"="+(i*j)+"\t");               
            }
            System.out.println();           
        }
    }

}
  • Ch2_3_4 .java
package chapter;

public class Ch2_3_4 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            if (i == 8) {
                break;
            }
            if (i % 3 == 0) {
                continue;
            }
            System.out.println(i);
        }

    }

}
  • Ch2_3_5 .java
package chapter;

public class Ch2_3_5 {
    public static void main(String[] args) {
        int fail = 3;
        A:
            for (int i = 1; i <= 8; i++) {
            if (i == 5) {
                for (int j = 1; j <= 5; j++) {
                    if (j == fail) {
                        System.out.println("<<暈倒了>>");
                        break A;
                    }
                    System.out.println("跑完" + j + "圈");
                }
            }
            System.out.println("上完第" + i + "堂課");
        }
    }
}

沒有留言:

張貼留言