控制流程
控制流程
- 順序結構
很簡單 從上到下
if選擇結構
if選擇結構就是 如果……那麼……這樣一個結構
if (/*布林條件判斷*/){
//執行語句
}
如果括號裡的值為真,那麼就執行花括號裡面的語句
是一個選擇分支的一個結構
switch選擇結構
switch是一種多選擇結構,很想我們平時做到的單選題,ABCD四個選項,當然switch不會是侷限於4個選項那樣
switch語句中的變數型別是byte short int char
從jdk 7 開始也支援String型別
char score = 'A'; switch (score){ case 'A' : System.out.println("優秀"); break; //可選 case 'B' : System.out.println("良好"); break; //可選 case 'C' : System.out.println("中等"); break; //可選 case 'D' : System.out.println("你好撈啊"); break; //可選 default: //可選 System.out.println("什麼玩意"); } }
上面switch結構一看,傳的值是A,那就執行case 'A' 結果就會輸出優秀兩個字了
case 穿透現象
如果沒有break語句,那麼上面的程式碼他就不僅顯示優秀,還會把B C D 以及defalut
的語句都會執行一便 結果就會輸出
優秀
良好
中等
你好撈啊
什麼玩意
這個就是case穿透現象
JDK 7 新特性
也就是開始提及的支援變數型別為String型別
通過反編譯發現,如果變數型別是String型別,他會把String的字串整一個hashCode,字元的本質還是數字,轉成hashCode實際上就是在case int型別變數
while迴圈
基本結構
while (布林表示式){ 迴圈內容 }
只要布林表示式為true那麼這個迴圈就會一直跑下去,這樣容易死迴圈,影響程式效能或者造成卡死崩潰,這種情況我們是要避免的。
這我們就需要一個讓表示式失效的方式來結束迴圈
比如表示式i < 100 然後迴圈內容來個i++之類的方式。
do...while迴圈
- 對於while語句,不滿足判斷,就不能迴圈,我們有時候也會遇到即使不滿足判斷也要迴圈執行至少一次
- while和do...while相似,區別就是while是先判斷後執行,do...while是先執行後判斷
下面是do...while的基本結構
do {
//程式碼語句
}while (布林表示式);
for 迴圈
基本結構
for (初始化條件; 布林表示式; 更新) {
//程式碼語句
}
先執行初始化,表示式為true執行迴圈,false迴圈終止。一次迴圈執行畢後,再次檢測布林表示式,重複上面的內容
for迴圈是很靈活的迴圈結構,也是最為常用的
- 使用for迴圈列印一個九九乘法表
for (int i = 1; i <= 9; i++) {
for (int n = 1; n <= i; n++) {
System.out.print(n + "*" + i + "=" + n*i + "\t");
}
System.out.println();
}
系統輸出如下
可以看見僅僅6行 實際上是4行程式碼,就敲出來一個九九乘法表,讓我不禁為for迴圈的靈活精巧而感嘆了。
增強for迴圈
jdk5引入,主要用於陣列和集合的使用
int[] numbers = {10, 20, 30, 40, 50}; //遍歷陣列元素 for (int x : numbers){ System.out.println(x); }
簡單瞭解一下,這是for迴圈的一個應用
break continue
break
用於強制退出迴圈,在switch語句中經常使用
continue
這個是跳過該次迴圈中剩下的語句,繼續下一個迴圈