判斷式的使用方法在各種語言上其實都大同小異,不外乎是if else及switch或著是? : 三種,在使用上每個判斷式其後用左右的大刮號{ }夾著要執行的敘述句。以下簡單一下這種種判斷式的用法。
if else 判斷式
if (條件為true))
{
多行敘述句;;
}else
{
條件為flase的執行敘述句;
}
或著單行敘述時我們可以使用以下方式
if (條件為true))
單行敘述句;
例子:
//hello.java public class hello { public static void main(String args[]) { int x =5; int y = 6; int z =3; if(x>y) System.out.println("x>y"); else //執行else內的敘述句,輸出x<y System.out.println("x<y"); System.out.println("----------------------------"); if(x>z)//執行if內的敘述句,輸出x>z { System.out.println("第二例子"); System.out.println("x>z"); } else { System.out.println("第二例子"); System.out.println("x<z"); } } }
答案是:
x<y ----------------------------第二例子
switch判斷式
switch如果要用if else 來做也是可以,不過在執行速度上,跟程式的可看性上會比較不好。
使用方式如下:
switch (識別字)
{
case 等於某識別字1 : 敘述句;break;
case 等於某識別字2 : 敘述句;break;
‧‧‧
default: 敘述句;
}
- 每一個case後面都需要加break做中斷,否則會繼續向下做判斷。
- 識別字只可為基本型態,如果是物件只可用if else來做流程判斷。
例子:
//swtichSoruce.java public class swtichSoruce { public static void main(String args[]) { char x ='a'; //答案是印 //不是Z也不是X switch (x) { case 'z' : System.out.println("是Z");break; case 'x' : System.out.println("是X"); break; default: System.out.println("不是Z也不是X"); } System.out.println("-------------------------"); int y = 5; //答案是印 //是3 switch(y) { case 5 : System.out.println("是5");break; case 3 : System.out.println("是3");break; } System.out.println("-------------------------"); int z = 5; //答案是印 //是5 //是3 switch(z) { case 6 : System.out.println("是6"); case 5 : System.out.println("是5"); case 3 : System.out.println("是3"); } } }
答案是:
不是Z也不是X -------------------------
是5
————————-
是5
是3
? : 斷判式
這個斷判式在新手上可能比較少使用,不過對一般熟的人使用上到很常見,這跟if else基本上是一樣的方式,只是敘述句只能存在單敘述,而無法寫入多行敘述。
條件?條件為true的敘述:條件為flase的敘述
例子:
//a.java public class a { public static void main(String args[]) { int x =5; //答案印出 //是5 System.out.println((x==5)?"是5":"不是5"); } }
答案是:
是5
請教,SWITCH 範例的第三例 Z=5 但是為何答案印出是顯示:是5,是3。
因為每一個case後面都需要加break做中斷,否則會繼續向下做判斷。應該是這段說明的範例,有錯請指教=D
請教,SWITCH 範例的第二例 y=5 但是為何答案印出是顯示:是3。
case5判斷成功,代表整個switch判斷式為是,所以下方判斷也會直接變成true,這就是switch的個性。小弟留言有錯請多指教,謝謝!!