判斷式的使用方法在各種語言上其實都大同小異,不外乎是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的個性。小弟留言有錯請多指教,謝謝!!