當須要對選項進行等值判斷時,使用 switch 語句更加簡潔明瞭。例如:根據考試的名次,給予前 4 名不一樣的獎品。第一名,獎勵筆記本一臺;第二名,獎勵 IPAD 2 一個;第三名,獎勵移動電源一個;最後一名獎勵 U 盤一個。編程
語法:spa
執行過程:當 switch 後表達式的值和 case 語句後的值相同時,從該位置開始向下執行,直到遇到 break 語句或者 switch 語句塊結束;若是沒有匹配的 case 語句則執行 default 塊的代碼。3d
如:code
不得不說的幾點小祕密:blog
一、 switch 後面小括號中表達式的值必須是整型或字符型get
二、 case 後面的值能夠是常量數值,如 一、2;也能夠是一個常量表達式,如 2+2 ;但不能是變量或帶有變量的表達式,如 a * 2it
三、 case 匹配後,執行匹配塊裏的程序代碼,若是沒有碰見 break 會繼續執行下一個的 case 塊的內容,直到遇到 break 語句或者 switch 語句塊結束 如class
運行結果:循環
四、 能夠把功能相同的 case 語句合併起來,如
五、 default 塊能夠出如今任意位置,也能夠省略
例子:
public class HelloWorld {
public static void main(String[] args) {
char today='日';
switch(today){
case '一':
case '三':
case '五':
System.out.println("早餐吃包子");
break;
case '二':
case '四':
case '六':
System.out.println("早餐吃油條");
break;
case '日'
System.out.println("主席套餐");
break;
default:
}
}
}
生活中,有些時候爲了完成任務,須要重複的進行某些動做。如參加 10000 米長跑,須要繞 400 米的賽道反覆的跑 25 圈。在 Java 中實現功能時,也常常須要重複執行某些代碼,例如,咱們爲了表示「濃烈的愛」,但願輸出 1000 行「我愛慕課網!」。顯然,此時重複敲 1000 遍輸出語句是不靠譜滴!!那麼,有木有好的辦法來解決呢? 有,循環語句!
Java 經常使用的 3 種循環: while 、 do...while 、 for
本小節我們先來聊聊 while
語法:
執行過程:
< 1 >、 判斷 while 後面的條件是否成立( true / false )
< 2 >、 當條件成立時,執行循環內的操做代碼 ,而後重複執行< 1 >、< 2 >, 直到循環條件不成立爲止
特色:先判斷,後執行
如:
例子:
public class HelloWorld {
public static void main(String[] args) {
int i = 1; // 表明 1 - 5 之間的數字
// 當變量小於等於 5 時執行循環
while ( i<=5 ) {
// 輸出變量的值,而且對變量加 1,以便於進行下次循環條件判斷
System.out.println(i);
i++;
}
}
}
結果:
1
2
3
4
5
do...while 循環與 while 循環語法有些相似,但執行過程差異比較大。
語法:
執行過程:
<1>、 先執行一遍循環操做,而後判斷循環條件是否成立
<2>、 若是條件成立,繼續執行< 1 > 、< 2 >,直到循環條件不成立爲止
特色: 先執行,後判斷
因而可知,do...while 語句保證循環至少被執行一次!
例如,依然輸出 1000 遍「我愛慕課網」,使用 do...while 的實現代碼爲:
例子:
public class HelloWorld {
public static void main(String[] args) {
int sum = 0; // 保存 1-50 之間偶數的和
int num = 2; // 表明 1-50 之間的偶數
do {
//實現累加求和
sum=sum+num;
num = num + 2; // 每執行一次將數值加2,以進行下次循環條件判斷
} while (num<=50); // 知足數值在 1-50 之間時重複執行循環
System.out.println(" 50之內的偶數之和爲:" + sum );
}
}
結果:
50之內的偶數之和爲:650
Java 的循環結構中除了 while 和 do...while 外,還有 for 循環,三種循環能夠相互替換。
語法:
執行過程:
<1>、 執行循環變量初始化部分,設置循環的初始狀態,此部分在整個循環中只執行一次
<2>、 進行循環條件的判斷,若是條件爲 true ,則執行循環體內代碼;若是爲 false ,則直接退出循環
<3>、 執行循環變量變化部分,改變循環變量的值,以便進行下一次條件判斷
<4>、 依次從新執行< 2 >、< 3 >、< 4 >,直到退出循環
特色:相比 while 和 do...while 語句結構更加簡潔易讀
例如,輸出 1000 遍「我愛慕課網」,使用 for 的實現代碼爲:
須要留心的幾個小細節:
一、 for 關鍵字後面括號中的三個表達式必須用 「;」 隔開,三個表達式均可以省略,但 「;」 不能省略。
a. 省略「循環變量初始化」,能夠在 for 語句以前由賦值語句進行變量初始化操做,如:
b. 省略「循環條件」,可能會形成循環將一直執行下去,也就是咱們常說的「死循環」現象,如:
在編程過程當中要避免「死循環」的出現,所以,對於上面的代碼能夠在循環體中使用 break 強制跳出循環(關於 break 的用法會在後面介紹)。
c. 省略「循環變量變化」,能夠在循環體中進行循環變量的變化,如:
二、 for 循環變量初始化和循環變量變化部分,能夠是使用 「,」 同時初始化或改變多個循環變量的值,如:
代碼中,初始化變量部分同時對兩個變量 i 和 j 賦初值,循環變量變化部分也同時對兩個變量進行變化,運行結果:
三、 循環條件部分可使用邏輯運算符組合的表達式,表示複雜判斷條件,但必定注意運算的優先級,如:
代碼中,必須同時知足變量 i 小於 10 ,而且 i 不等於 5 時纔會進行循環,輸出變量 i 的值。
例子:
public class HelloWorld {
public static void main(String[] args) {
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);
}
}
結果:
1到100之間不能被3整除的數之和爲:3367