選擇結(jié)構(gòu)語(yǔ)句
在Java中,選擇結(jié)構(gòu)語(yǔ)句包括if條件語(yǔ)句和switch條件語(yǔ)句,接下來(lái)我們就來(lái)學(xué)習(xí)一下if條件語(yǔ)句。
if條件語(yǔ)句 if 語(yǔ)句是使用最為普遍的選擇結(jié)構(gòu)語(yǔ)句,在編程中總是避免不了要用到它。每一種編
程語(yǔ)言都有一種或多種形式的if語(yǔ)句,Java中if語(yǔ)句一共有三種語(yǔ)法格式。
1.if語(yǔ)句的第一種語(yǔ)法:
if (條件語(yǔ)句){
代碼塊
}
上述格式中,如果條件語(yǔ)句結(jié)果為true, 則程序先執(zhí)行{}中的代碼塊;如果結(jié)果為false,
則程序跳過(guò){},直接去執(zhí)行后面的代碼。具體代碼如下:
public class Test01 {
publicstatic void main(String[] args) {
int x= 0;
if (x== 1) {
System.out.println('x==1');
}
System.out.println('程序沒(méi)有執(zhí)行if中的代碼塊,直接執(zhí)行之后的程序');
}
}
運(yùn)行結(jié)果如下所示
 X
XTest01.java中定義了變量x,初始值為0,在if條件語(yǔ)句中        
判斷x的值是否等于1,
如果條件成立,則打印出“x==1”,否則跳過(guò)if代碼塊,去執(zhí)行后面的代碼。由于x =0,所以不會(huì)執(zhí)行打印“x==1”的語(yǔ)句,程序直接執(zhí)行了后面的打印語(yǔ)句。
上述的if條件語(yǔ)句也可以用一個(gè)流程圖來(lái)表示,如下所示:

2.if語(yǔ)句的第二種語(yǔ)法:
if (條件語(yǔ)句){
代碼塊1
}else{
代碼塊2
}
if語(yǔ)句的第二種語(yǔ)法格式在第一種格式的后面添加了一個(gè)else語(yǔ)句,當(dāng)if條件語(yǔ)句返回的結(jié)果為false時(shí),執(zhí)行else后面部分的語(yǔ)句。具體代碼如下所示:
public class Test02 {
publicstatic void main(String[] args) {
int x= 0;
if (x== 1) {
System.out.println('x== 1');
} else{
System.out.println('x!= 1');
}
System.out.println('這里仍然執(zhí)行');
}
}
運(yùn)行結(jié)果如下所示

Test02.java中如果x的值等于2則打印出“x==1”,否則將打印出“x!=1”。因?yàn)閤為0,所以得出了如圖所示的結(jié)果。程序中,放置在if和else代碼塊后面的打印語(yǔ)句仍然執(zhí)行了,這說(shuō)明if-else條件語(yǔ)句不會(huì)影響到if-else代碼塊外的程序執(zhí)行。
上述的if條件語(yǔ)句也可以用一個(gè)流程圖來(lái)表示,如下所示:

對(duì)于if-else語(yǔ)句,還可以三目運(yùn)算的形式,具體格式如下:
變量 = 條件表達(dá)式?語(yǔ)句1:語(yǔ)句2;
通過(guò)具體代碼來(lái)表示:
if(x > 0){
y = x;
}else{
y = -x;
}
上述代碼可以簡(jiǎn)寫(xiě)成如下形式:
y = x>0?x:-x;
上述代碼中,如果x大于0,就把x賦值給變量y,如果x不大于0,就把-x賦值給前面的y。意思就是,如果問(wèn)號(hào)“?”前的表達(dá)式結(jié)果為真,則計(jì)算問(wèn)號(hào)和冒號(hào)中間的表達(dá)式,并把結(jié)果賦值給變量y。否則,將計(jì)算冒號(hào)后面的表達(dá)式,并把結(jié)果賦值給變量y,這種寫(xiě)法比if-else語(yǔ)句寫(xiě)法簡(jiǎn)潔。
3.if語(yǔ)句第三種語(yǔ)法:
if (條件語(yǔ)句1){
代碼塊1
} else if (條件語(yǔ)句2) {
代碼塊2
}
...
else if (條件語(yǔ)句n) {
代碼塊n
} else {
代碼塊n+1
}
這種格式用else-if語(yǔ)句進(jìn)行更多的條件判斷,不同的條件對(duì)應(yīng)執(zhí)行不同的代碼塊。
public class Test03 {
publicstatic void main(String[] args) {
int x= 50;
if (x< 1)="">
System.out.println('x<>
} elseif (x >= 1 && x < 10)="">
System.out.println('x>=1并且 x<>
} elseif (x >= 10 && x < 100)="">
System.out.println('x>=10并且x<>
} else{
System.out.println('x>=100');
}
}
}
運(yùn)行結(jié)果如下所示

05.png (12.54 KB, 下載次數(shù): 0)
下載附件2013-8-12 09:34 上傳
Test03.java程序首先判斷x是否小于1,如果是,就執(zhí)行打印“x<1”;如果不是,程序?qū)⒗^續(xù)判斷x是否大于等于1且小于10,如果是,則打印“x>=1 &&x<10”;如果不是,程序?qū)⑴袛鄕是否大于等于10且小于100,如果是,則打印“x>=10&&x<100”;如果上面的條件都不滿(mǎn)足,則執(zhí)行else語(yǔ)句,由于x=50所以程序最后打印結(jié)果為“x>=10&& x<>
ps: 轉(zhuǎn)載請(qǐng)注明出處:一生的程序?qū)懻?博客地址:
http://blog.sina.com.cn/u/3496552211100”;如果上面的條件都不滿(mǎn)足,則執(zhí)行else語(yǔ)句,由于x=50所以程序最后打印結(jié)果為“x>10”;如果不是,程序?qū)⑴袛鄕是否大于等于10且小于100,如果是,則打印“x>1”;如果不是,程序?qū)⒗^續(xù)判斷x是否大于等于1且小于10,如果是,則打印“x>