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

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

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

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