Comment on page

迴圈的跳離

跳離敘述會增加除錯與閱讀的困難,不得已情況下才使用。

一、break 敘述

可以強迫跳離迴圈。
for(初值設定; 判斷條件; 設增減量)
{
敘述1;
敘述2;
...
break; //僅執行到此行
...
敘述3; //此敘述不會被執行
}
...
public class ch05_9 {
public static void main(String[] args) {
int i;
for (i=1; i<=10; i++)
{
if(i%3==0)
break;
System.out.println("i="+i); //此行執行結果並無印出
}
System.out.println("當迴圈中斷,i="+i);
}
OUTPUT: i=1 i=2 當迴圈中斷,i=3

二、continue 敘述

可以強迫跳到迴圈開頭。
for(初值設定; 判斷條件; 設增減量)
{
敘述1;
敘述2;
...
continue; //僅執行到此行
...
敘述3; //此敘述不會被執行
}
...

試比較 break 與 continue 執行結果:

public class ch05_10 {
public static void main(String[] args) {
int i;
for (i=1; i<=10; i++)
{
if(i%3==0)
continue;
System.out.println("i="+i);
}
System.out.println("當迴圈中斷,i="+i);
}
OUTPUT: i=1 i=2 i=4 i=5 i=7 i=8 i=10 當迴圈中斷,i=11

三、switch敘述

switch(運算式)
{
case 選擇值1:
敘述主體1;
break;
case 選擇值2:
敘述主體2;
break;
...
case 選擇值n:
敘述主體n;
break;
default: //若上述case 皆不適合,則會執行default的敘述
敘述主體;
}
選擇值可為 字元、字串或是整數
如果沒有加上break,則會一直執行到switch 敘述的尾端。
import java.util.Scanner;
public class ch05_11 {
public static void main(String[] args) {
Scanner scn=new Scanner (System.in);
int a=50,b=20;
System.out.print("a="+a+", b="+b+", 請輸入運算符號: ");
char oper=scn.next().charAt(0); //取得第一個字元
switch (oper)
{
case '+':
System.out.println(a+"+"+b+"="+(a+b));
break;
case '-':
System.out.println(a+"-"+b+"="+(a-b));
break;
case '*':
System.out.println(a+"*"+b+"="+(a*b));
break;
case '/':
System.out.println(a+"/"+b+"="+(a/b));
break;
default:
System.out.println("不清楚此運算符號");
}
}
OUTPUT: a=50, b=20, 請輸入運算符號: + // 試著輸入其他運算符號 50+20=70