if 語(yǔ)句便是一種判斷語(yǔ)句。
語(yǔ)法:
if(條件){ 條件成立時(shí)執(zhí)行的代碼}
if...else 語(yǔ)句當(dāng)條件成立時(shí),則執(zhí)行 if 部分的代碼塊; 條件不成立時(shí),則進(jìn)入 else 部分。例如,如果一個(gè)月天數(shù)大于30天,則為大月,否則為小月。
語(yǔ)法:
if(條件){ 代碼塊1}else{ 代碼塊2}
多重 if 語(yǔ)句,在條件 1 不滿足的情況下,才會(huì)進(jìn)行條件 2 的判斷,以此向下;當(dāng)前面的條件均不成立時(shí),最終執(zhí)行 else 塊內(nèi)的代碼。
語(yǔ)法:
if(條件1){ 代碼塊1}else if(條件2){ 代碼塊2}...else { 代碼塊n}
注意:如果 if(或 else if,或 else)條件成立時(shí)的執(zhí)行語(yǔ)句只有一條,是可以省略大括號(hào)的!但如果執(zhí)行語(yǔ)句有多條,那么大括號(hào)就是不可或缺的。
比如:
int days = 31;if(days > 30) System.out.PRintln("本月是大月");else System.out.println("本月是小月"); if 語(yǔ)句是可以在內(nèi)層進(jìn)行嵌套的。嵌套 if 語(yǔ)句,只有當(dāng)外層 if 的條件成立時(shí),才會(huì)判斷內(nèi)層 if 的條件。
語(yǔ)法:
if(條件1){ if(條件2){ 代碼塊1 } else{ 代碼塊2 }}else{ 代碼塊3}
簡(jiǎn)單的練習(xí):小明考了78分,60分以上及格,80分以上為良好,90分以上為優(yōu)秀,60分以下要重考,編寫一段程序,輸出小明的情況吧。
public class ScoreJudge { public static void main(String[] args){ int score = 78; if(score >= 60){ if(score >= 80){ if(score >= 90){ System.out.println("成績(jī)優(yōu)秀"); } else{ System.out.println("成績(jī)良好"); } } else{ System.out.println("成績(jī)及格"); } } else{ System.out.println("需要補(bǔ)考"); } }} switch 語(yǔ)句。當(dāng)需要對(duì)選項(xiàng)進(jìn)行等值判斷時(shí),使用 switch 語(yǔ)句更加簡(jiǎn)潔明了。比如:搖號(hào)搖到1的得一等獎(jiǎng),搖到2的得二等獎(jiǎng),搖到3的等三等獎(jiǎng),搖到其他的沒(méi)有獎(jiǎng)。
語(yǔ)法:
switch(表達(dá)式){ case 值1: 代碼塊1 break; case 值2: 代碼塊2 break; ... default: 默認(rèn)執(zhí)行的代碼塊} 當(dāng) switch 后表達(dá)式的值和 case 語(yǔ)句后的值相同時(shí),從該位置開始向下執(zhí)行,直到遇到 break 語(yǔ)句或者 switch 語(yǔ)句塊結(jié)束;如果沒(méi)有匹配的 case 語(yǔ)句則執(zhí)行 default 塊的代碼。
public class Draw { public static void main(String[] args){ int num = 2; switch(num){ case 1: System.out.println("恭喜你,獲得了一等獎(jiǎng)"); break; case 2: System.out.println("恭喜你,獲得了二等獎(jiǎng)"); break; case 3: System.out.println("恭喜你,獲得了三等獎(jiǎng)"); break; default: System.out.println("很遺憾,下次再來(lái)"); } }}循環(huán)控制語(yǔ)句
循環(huán)語(yǔ)句中的while和do...while。
while語(yǔ)法:
while(條件){ 代碼塊}while 的執(zhí)行過(guò)程是先判斷,再執(zhí)行。
判斷 while 后面的條件是否成立( true or false )
當(dāng)條件成立時(shí),執(zhí)行循環(huán)內(nèi)的代碼,然后重復(fù)執(zhí)行1.、2., 直到循環(huán)條件不成立為止

do...while語(yǔ)法:
do{ 代碼塊}while(條件);do...while 的執(zhí)行過(guò)程是先執(zhí)行,在判斷(所以循環(huán)內(nèi)的代碼至少會(huì)執(zhí)行一次)
先執(zhí)行一遍循環(huán)操作,然后判斷循環(huán)條件是否成立
如果條件成立,繼續(xù)執(zhí)行1.、2.,直到循環(huán)條件不成立為止

下面的例子:
int i = 0;while(i < 100){ System.out.println("I love ShiYanlou!"); i++;}int i = 0;do { System.out.println("I love ShiYanlou!"); i++;} while(i < 100); 練習(xí):分別用 while 和 do...while 兩種方法,編寫一個(gè)程序,實(shí)現(xiàn) 1-1000 中所有偶數(shù)的和,并輸出。驗(yàn)證一下兩種方法你輸出的結(jié)果是一致嗎?
參考如下:
public class SumOfOdd { public static void main(String[] args){ int i1 = 1, i2 = 1; int sum1 = 0, sum2 = 0; while (i1 <= 1000){ //循環(huán)1000次 if(0 == i1 % 2){ //判斷是否為偶數(shù) sum1 += i1; //將偶數(shù)加入到總數(shù)里 } i1++; //i自增1 } System.out.println("用while,1到1000中,所有偶數(shù)的和為:"+sum1); do { if (0 == i2 % 2){ //在條件語(yǔ)句中,將數(shù)值寫在前面是為了防止將==寫成了= sum2 += i2; } i2++; } while(i2 <= 1000); System.out.println("用do...while,1到1000中,所有偶數(shù)的和為:"+sum2); }} 最后我們來(lái)學(xué)習(xí)另一個(gè)循環(huán)語(yǔ)句for 語(yǔ)句
語(yǔ)法:
for(循環(huán)變量初始化; 循環(huán)條件; 循環(huán)變量變化){ 循環(huán)操作}for 相比 while 和 do...while 語(yǔ)句結(jié)構(gòu)更加簡(jiǎn)潔易讀,它的執(zhí)行順序:
執(zhí)行循環(huán)變量初始化部分,設(shè)置循環(huán)的初始狀態(tài),此部分在整個(gè)循環(huán)中只執(zhí)行一次
進(jìn)行循環(huán)條件的判斷,如果條件為 true,則執(zhí)行循環(huán)體內(nèi)代碼;如果為 false ,則直接退出循環(huán)
執(zhí)行循環(huán)變量變化部分,改變循環(huán)變量的值,以便進(jìn)行下一次條件判斷
依次重新執(zhí)行2.、3.、4.,直到退出循環(huán)

例如,計(jì)算100以內(nèi)不能被整除的數(shù)之和:
int sum = 0; // 保存不能被3整除的數(shù)之和 // 循環(huán)變量 i 初始值為 1 ,每執(zhí)行一次對(duì)變量加 1,只要小于等于 100 就重復(fù)執(zhí)行循環(huán) for (int i = 1;i<=100;i++) { // 變量 i 與 3 進(jìn)行求模(取余),如果不等于 0 ,則表示不能被 3 整除 if (i % 3 != 0) { sum = sum + i; // 累加求和 } } System.out.println("1到100之間不能被3整除的數(shù)之和為:" + sum); 在循環(huán)語(yǔ)句里,三種循環(huán)語(yǔ)句可以自身嵌套,也可以相互嵌套,最常見的就是二重循環(huán)。在二重循環(huán)中,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)要執(zhí)行一圈。
注意:可以嵌套多層循環(huán)
比如我想打印
*
**
***
****
這樣的圖形
// 外層循環(huán)控制行數(shù) for (int i = 1; i<=4; i++ ) { // 內(nèi)層循環(huán)控制每行的*號(hào)數(shù) // 內(nèi)層循環(huán)變量的最大值和外層循環(huán)變量的值相等 for (int j = 1; j<=i; j++ ) { System.out.print("*"); } // 每打印完一行后進(jìn)行換行 System.out.println(); }跳轉(zhuǎn)語(yǔ)句
break的意思為跳出,經(jīng)常用在條件和循環(huán)語(yǔ)句中,用來(lái)跳出循環(huán)語(yǔ)句的。
例如:
for(int i = 1; i <= 10; i++){ if(0 == i % 3){ break; } if(0 == i % 5){ System.out.println("我進(jìn)來(lái)了!") }} 上面的代碼中,本來(lái) for 語(yǔ)句會(huì)使得循環(huán)體內(nèi)的代碼循環(huán)10次,但當(dāng)i=3時(shí),進(jìn)入了第一個(gè)條件語(yǔ)句,遇到了break,結(jié)束了循環(huán),而永遠(yuǎn)也進(jìn)不了第二個(gè)條件語(yǔ)句。
在跳轉(zhuǎn)語(yǔ)句中,還有一個(gè)continue跟break很像,它的作用是跳過(guò)循環(huán)體中剩余的語(yǔ)句執(zhí)行下一次循環(huán)。
比如我們要打印10以內(nèi)的所有奇數(shù):
for(int i = 1; i <= 10; i++){ if(0 == i % 2) //判斷i是否為偶數(shù) continue; //通過(guò)continue結(jié)束本次循環(huán) System.out.println(i);}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注