2-4 Java流程控制——迴圈語句
文章目錄
流程控制
總結了一下好幾天前學習的流程控制的筆記。
一、接收使用者輸入
使用Java內部提供的Scanner類,用於接收使用者鍵盤輸入。Java所提供的一個工具,其中封裝了許多方法,每個方法都有不同的功能可供我們使用。
-
語法格式:型別 變數 = new 類(引數)
Scanner input = new Scanner(System.in); //用於接收各種資料型別: int i = input.nextInt(); //nextLine方法不要與其他next方法同時使用 String str1 = input.next(); String str2 = input.nextLine();
new:建立、引用資料型別的物件,可認為是變數值。(物件在後面學到)
System.in:掃描系統的輸入
二、執行結構概述
任何簡單和複雜的演算法都可以由順序結構、分支結構和迴圈結構這三種基本結構組成。
-
順序結構
按照語句的出現順序執行
-
分支結構
程式執行時出現分支,根據條件成立與否判斷選擇哪一條分支
-
迴圈結構
需要重複執行、運算的一些操作,重複執行某一迴圈體,直到條件不滿足結束
- 例如:寫一個程式計算每個人的考試成績,此時多次的累加就需要重複執行,這時就可以寫一個迴圈結構
- 注意:一般來說,迴圈執行結構一定要有出口
三、if分支
if條件語句:如條件符合,則執行XX程式碼語句
條件語句為Boolean結果表示式
-
語法格式(4種)
//1.如果條件結果為true,則執行體(大括號中的程式碼)執行 if(條件語句){...} //2.如果條件結果為true,則執行體執行,否則執行else後面的語句 if(條件語句){...}else{...} //3.兩個條件,若滿足if條件則執行體執行並結束;若不滿足if條件,判斷else if條件,滿足則執行else if執行體語句 if(條件語句){…}else if(條件語句){…} //4.判斷是否滿足條件,滿足則執行體執行並結束,若前面的條件都不滿足,執行最後的else執行體 if(條件語句){…}else if(條件語句){…}else{…}
-
例1:判斷成績是否合格
if(s >= 60) { System.out.println("成績合格"); } else { System.out.println("成績不合格"); }
-
例2:判斷成績等級
if(s > 120 || s < 0) { System.out.println("成績輸入有誤"); } else if(s >= 90) { System.out.println("優"); } else if(s >= 80) { System.out.println("良"); } else if(s >= 70) { System.out.println("中"); } else if(s >= 60) { System.out.println("及格"); } else { System.out.println("不及格"); }
四、switch
-
語法格式:
//switch塊裡包含case,表示如果表示式的結果滿足取值n,則執行語句塊n,直到遇見break關鍵字,跳出這個選擇繼續執行下方程式碼;若所有case都不匹配,則執行default中語句塊n+1,直到遇見break switch(表示式){ case取值1:語句塊1;break; case取值n:語句塊n;break; default:語句塊n+1;break; }
-
規則:
- 表示式的結果是int、byte、char、short、String型別
- case子句中的取值必須是常量(不會變化的值),且不能重複
- case後面的執行體可寫{}也可以不寫{}
- default子句是可選的,可以不寫,不寫時若沒有匹配的case則switch語句不會進行任何操作
-
特殊情況:若case1子句最後沒寫break,則不管是否與case2匹配,都會繼續執行case2語句,直到遇見break才會跳出選擇。
-
例:根據使用者輸入月份來判斷季節
switch(month) { case 1: case 2: case 3: System.out.printlb("春季"); break; case 4: case 5: case 6: System.out.printlb("夏季"); break; case 7: case 8: case 9: System.out.printlb("秋季"); break; case 10: case 11: case 12: System.out.printlb("冬季"); break; default: System.out.println("輸入的月份有誤,請檢查!"); break; }
五、迴圈_while
和if語句類似,條件滿足就執行某段程式碼。
-
迴圈語句功能
在迴圈條件滿足的情況下,反覆執行特定程式碼
-
迴圈語句分類:(3類)
for迴圈
while迴圈
do/while迴圈
while迴圈
-
先判斷,若符合條件,迴圈繼續執行,否則迴圈退出。
-
語法格式:
while(條件表示式){ //語句塊; }
-
使用while迴圈的步驟
- 分析迴圈條件(迴圈次數)和迴圈操作(迴圈內容)
- 套用while語法寫出程式碼
- 檢查迴圈是否能夠退出
int i = 0; while(i < 10) { //更新迴圈變數 i++; System.out.println("迴圈:"+i); }
-
例:錄入班級人數和學員成績,計算班級學員的平均成績
//s使用變數studentNum記錄班級總人數 int studentNum = input.nextInt(); //用於記錄迴圈的次數,以及控制迴圈何時結束 int i = 0; //定義變數sum,用於統計總分數 int sum = 0; whlie(i < studentNum) { i++; System.out.println("請輸入第"+i+"個學生的成績:"); int s = input.nextInt(); sum += s; } System.out.println("學生的平均成績為"+sum/studentNum);
六、do while迴圈
先執行,再判斷。
- 語法格式
do { 迴圈操作 } while (條件表示式);
while和do while的區別:
區別在於第一次判斷是否成立,不成立時:while程式不執行,直接結束;do while程式先執行一次執行體中的內容再結束。
while是先判斷,如果滿足條件則繼續執行,否則退出。do while是先執行一次迴圈體,再判斷,如果滿足條件繼續執行,否則退出。
do while的應用場景比while迴圈少很多,常用於要做第一次操作。
七、for迴圈
-
例:列印文字從0~9
-
while迴圈:
int i = 0 while (i < 10) { System.out.println(i); i++; }
-
for迴圈:
//for ([定義迴圈變數];[判斷迴圈條件];][更新迴圈變數]) {} for (int i = 0;i < 10;i++) { System.out.println(i); } for(;;){}//(;;)相當於(;true;)死迴圈
i:控制迴圈次數的迴圈變數,值一直會變化
判斷迴圈條件,條件滿足一直迴圈執行,條件不滿足迴圈結束。
i++:更新迴圈變數
八、迴圈巢狀圖形列印
經常用來執行一些複雜運算
- 語法格式:
//外層迴圈控制內層迴圈執行10次 for(int i = 0; i < 10; i++) { //內層迴圈也會執行10次 for(int j = 0;j < 10;j++) { //總共執行100次 } }
- 例:用迴圈列印一個10行10列的*圖形
//外層迴圈控制行數 for(int i = 0; i < 10; i++) { //System.out.println("* * * * * * * * * *"); //內層迴圈控制列數 for(int j = 0;j < 10;j++) { System.out.print("* "); } System.out.println(); }
九、break與continue
迴圈的退出:break和continue
都能用於退出迴圈
break用於結束迴圈,continue用於結束一輪迴圈中的某一次
- 例:
for(int i =0;i < 10;i++) { if(i==5) { //break結果為0 1 2 3 4 //break; //continue結果為0 1 2 3 4 6 7 8 9 continue; } System.out.println(i); }
區別:i=5時,continue結束了那一次迴圈,然後繼續i++往下執行,從6繼續。break直接結束所有迴圈。
十、如何退出多重迴圈
for(int i = 0;i < 10;i++) {
//給迴圈起別名
bieming:for(int j = 0;j < 10;j++) {
System.out.println("i="+i+",j="+j);
if(i == 5 && j == 5) {
break bieming;
}
}
}
當想要退出n重迴圈時,只需要給迴圈起一個別名(任意字母),當觸發某條件時,跳出該別名的迴圈即可。
十一、圖形列印詳解
巢狀迴圈列印圖形以什麼思路思考?
外層迴圈控制行數,內層迴圈控制列數。
- 圖形1:
* *** ***** *******
- 解決方案:
外層迴圈:4
內層迴圈:第一行時迴圈1次,第二行時迴圈3次,第三行時迴圈5次,第四行時迴圈7次。for(int i = 0;i < 4;i++) { for(int j = 0;j < i * 2 + 1;j++) { System.out.print("*"); } System.out.println(); }
控制行直接數多少行即可,控制列要找到規律,並通過迴圈條件判斷。
-
圖形2:
* *** ***** *******
-
解決方案:
外層迴圈:4
內層迴圈1:控制空格的列數,第一行時3個空格,第二行時2個空格,第三行時1個空格,第四行時0個空格。
內層迴圈2:控制*的列數,第一行時迴圈1次,第二行時迴圈3次,第三行時迴圈5次,第四行時迴圈7次。for(int i = 0;i < 4;i++) { //i:0 1 2 3 for(int j = i+1;j < 4;j++) { System.out.print(" "); } for(int j = 0;j < i*2+1;j++) { System.out.print("*"); } System.out.println(); }
-
圖形3:
* *** ***** ******* ***** *** *
-
解決方案:和圖形三一樣的,就是反過來了。
for(int i = 0;i < 4;i++) { for(int j = i + 1;j < 4;j++) { System.out.print(" "); } for(int j = 0;j < i*2+1;j++) { System.out.print("*"); } System.out.println(); } for(int i = 0;i < 3;i++) { for(int j = 0;j < i+1;j++) { System.out.print(" "); } for(int j = 6;j > i*2+1;j--) { System.out.print("*"); } System.out.println(); }
-
圖形四:思考ing
* * * * * * * * * * * *
十二、判斷使用者輸入型別
在接收使用者輸入的資料前判斷資料型別
if(input.hasNextInt()) {
...
} else {
System.out.println("輸入型別錯誤");
}
總結
流程控制是相當重要的一個內容,幾天沒看就不熟悉了,這個腦子。多看多記多練習!!!
相關文章
- 流程控制、 迴圈語句
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- 【分支流程控制語句、迴圈流程控制語句】的學習
- 第 7 節:流程控制-迴圈練習-跳出語句
- php中有哪些迴圈控制語句PHP
- Java流程控制語句Java
- 『無為則無心』Python基礎 — 15、Python流程控制語句(for迴圈語句)Python
- Java簡單迴圈語句案例Java
- Java語言程式設計—迴圈語句Java程式設計
- 分支語句和迴圈語句
- Java迴圈語句以及break,continue語句,IDEA安裝JavaIdea
- Java 可以採用什麼語句跳出迴圈語句Java
- Java基礎 迴圈語句 for while do.....while語句JavaWhile
- Java基礎 - 流程控制語句Java
- 04流程控制 for迴圈,while迴圈While
- java常見語句之迴圈體Java
- 用Java中for迴圈語句列印菱形Java
- JavaScript for 迴圈語句JavaScript
- Ruby迴圈語句
- TypeScript 迴圈語句TypeScript
- MySQL迴圈語句MySql
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(迴圈語句、while語句、for語句)JavaWhile
- JAVA修飾符、運算子、迴圈語句Java
- 流程控制語句
- 七 while迴圈語句While
- JavaScript跳出for迴圈語句JavaScript
- Python的迴圈語句Python
- 7-迴圈語句
- Java for迴圈中語句執行的順序Java
- Go語言流程控制之迴圈結構篇Go
- Python的流程控制:迴圈Python
- Python-條件語句和迴圈語句Python
- Python 迴圈語句的使用Python
- 【Python基礎】for迴圈語句Python
- MyBatis xml foreach迴圈語句MyBatisXML
- Java 控制語句Java
- python04: while迴圈語句 break continue for in 迴圈PythonWhile
- ### 流程控制語句結構