在瞭解開發工具後,咱們來熟悉一下Java語言的流程控制模塊知識,下面經過一些案例來學習一下。java
首先,來熟悉一下流程控制語句if...else的使用:編程
(1)任務:判斷某一年是否爲閏年數組
(2)準備工做:符合閏年的條件是能被4整除但不能被100整除或者能被400整除工具
(3)編程:經過控制檯輸入年份的方式,代碼以下學習
import java.util.Scanner; public class RunYear{ public static void main(String[] args){ Scanner scan =new Scanner(System.in); System.out.println("請輸入一個年份:"); long year; try{ year = scan.nextLong(); if((year%4 == 0 && year%100 !=0) || year%400 == 0) System.out.println(year+"是閏年!"); else System.out.println(year+"不是閏年!"); }catch(Exception e){ System.out.println("輸入的不是有效的年份!"); } } }
(4)運行:輸入年份可輸出相應信息開發工具
其中,Scanner類是一個用於掃描輸入文本的簡單文本掃描器,能夠用這個類從控制檯寫入數據,類的nextLong()方法能夠將輸入信息轉爲一個long型的數據。上面運用了if...else的簡單流程語句,也能夠按三元運算符(?:)的形式編寫,讓代碼看起來更加簡潔。ui
注意:若是if表達式判斷兩字符串是否相同,則不能使用 「==」,由於字符串屬於對象而非基本數據類型,使用「==」判斷的將是兩個字符串對象的內存地址,而非字符串內容,因此須要經過equals()方法來判斷是否相同。spa
接下來,來熟悉一下流程控制語句switch的使用:code
(1)任務:根據成績分出等級對象
(2)準備工做:switch語句的基本語法格式
switch(表達式){ case 常量表達式1:語句1 break; case 常量表達式2:語句2 break; ... case 常量表達式n:語句n break; default:語句n+1 break; }
參數說明:
參數名稱 | 參數描述 |
---|---|
表達式 | 必要參數,能夠是任何byte、short、int和char類型的變量 |
常量表達式1 | 若case存在,則爲必要參數,該常量表達式的值必須是一個與表達式數據類型相兼容的值 |
語句1 | 可選參數,一條或多條語句,當表達式的值與常量表達式1的值匹配時執行 |
常量表達式n | 若case存在,則爲必要參數,該常量表達式的值必須是一個與表達式數據類型相兼容的值 |
語句n | 可選參數,一條或多條語句,當表達式的值與常量表達式n的值匹配時執行 |
break | 可選參數,用於跳出switch語句 |
default | 可選參數,當全部case中的常量表達式匹配不成功時執行 |
語句n+1 | 可選參數,若沒有與表達式的值相匹配的case常量時執行 |
(3)編程:按照百分制經過控制檯輸入成績的方式,代碼以下
import java.util.Scanner; public class ScoreLevel{ public static void main(String[] args){ Scanner scan =new Scanner(System.in); System.out.println("請輸入成績:"); try{ int score = scan.nextInt(); score = score/10; switch(score){ case 10: case 9: System.out.println("成績等級爲A!"); break; case 8: System.out.println("成績等級爲B!"); break; case 7: System.out.println("成績等級爲C!"); break; case 6: System.out.println("成績等級爲D!"); break; case 5: case 4: case 3: case 2: case 1: case 0: System.out.println("成績等級爲E!"); break; } catch(Exception e){ System.out.println("輸入無效!"); } } }
(4)運行:輸入成績可輸出相應信息
注意:對於多個條件採起相同處理的狀況,能夠把多個case分支關聯在一塊兒,減小重複代碼,default屬於可選參數,可不採用,如上所示。break語句和continue語句都是對循環體的控制語句,前者表示跳出多層循環,結束循環,後者表示跳過其後面的語句,進入下一次循環,循環繼續。
緊接着,來熟悉一下流程控制語句while的使用:
(1)任務:自增運算符結合while循環實現數組的遍歷
(2)準備工做:while循環語句基本語法格式
while(條件表達式){ 循環體; }
參數說明:條件表達式決定是否進行循環,其結果爲boolean類型,即爲true或false;循環體是條件表達式結果爲true時執行的語句。
(3)編程:
public class ColorWhile{ public static void main(String[] args){ String[] colorArray = {"BLUE","WHITE","YELLOW","BLACK","GREEN"}; int index = 0; while(index < colorArray.length){ System.out.println("顏色:爲"+colorArray[index++]); } } }
(4)運行可在控制檯看到依次輸出數組中的值
注意:數組下標從0開始;自增和自減運算符都分前置和後置兩種,如上,「index++「會先使用變量的值,再進行遞增運算,「++index」則會先進行遞增運算,再使用變量的值,你們能夠修改上面的代碼進行驗證,看看二者之間的區別和原理,會出現數組越界的狀況。
最後,來熟悉一下流程控制語句for的使用:
(1)任務:輸出楊輝三角
(2)準備工做:楊輝三角的原理(兩側數值均爲1,其餘位置的數值是其正上方的數值與左上角數值之和);for循環語句基本語法格式
for(表達式1;表達式2;表達式3){ 循環體 }
參數說明:3個表達式均爲可選,即for循環能夠無表達式,則爲無限循環;執行順序爲:表達式1->表達式2->循環體->表達式3。
(3)編程:經過控制檯輸入顯示的行數
import java.util.Scanner; public class YanghuiTriangle { public static void main(String[] args) { Scanner scan =new Scanner(System.in); System.out.println("請輸入要輸出的行數:"); try{ int row = scan.nextInt(); //建立二維數組 int triangle[][] = new int[row][]; for(int i=0;i<triangle.length;i++){ //初始化第二層數組的大小 triangle[i] = new int[i+1]; //遍歷數組 for(int j=0;j<=i;j++){ //兩側數組元素均爲1 if(i==0 || j==0 || i==j) triangle[i][j] = 1; //其餘數組元素值=正上方值+正上方左值 else triangle[i][j] = triangle[i-1][j]+triangle[i-1][j-1]; //輸出數組元素 System.out.print(triangle[i][j]+"\t"); } System.out.println(); } }catch(Exception e){ System.out.println("輸入不合規範!"); } } }
(4)運行輸入顯示行數可輸出對應的楊輝三角
注意:在二維數組中,第一個下標值表示行數,第二個下標值表示列數,上面建立二維數組時第二維的長度未肯定,表示第二維的長度任意、不肯定。
以上是對流程控制中幾種經常使用的語句進行一些講解和運用,還有相對複雜的,好比嵌套循環(九九乘法表案例)等,這裏不作介紹了,你們自行學習鞏固。