JAVA流程控制語句
本篇繼續回顧Java的基礎流程控制語句,打好基礎才能寫好高內聚低耦合、更易維護的代碼呀。
流程控制語句
流程控制語句是用來控制程序中各語句執行順序的語句,可以把語句組合成能完成一定功能的小邏輯模塊。
流程控制語句分類
順序結構
分支結構(if,switch)
循環結構(for,while,do…while)
順序結構
順序結構是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先后順序,依次執行,程序中大多數的代碼都是這樣執行的。
分支結構
if語句格式1
格式: if (關系表達式) {
語句體;
}
執行流程:
首先計算關系表達式的值
如果關系表達式的值為true就執行語句體
如果關系表達式的值為false就不執行語句體
繼續執行后面的語句內容
if語句格式2
格式: if (關系表達式) {
語句體1;
} else {
語句體2;
}
執行流程:
首先計算關系表達式的值
如果關系表達式的值為true就執行語句體1
如果關系表達式的值為false就執行語句體2
繼續執行后面的語句內容
if語句格式3
格式: if (關系表達式1) { ? ? 語句體1; ? ? } else if (關系表達式2) { ? ? 語句體2; ? ? }? … else { ? ? 語句體n+1; }
做一個簡單的相親案例,來實踐一下上面的流程控制:
需求:男大當婚,女大當嫁。那么女方家長要嫁女兒,當然要提出 一定的條件:高:180cm以上;富:財富1千萬以上;帥:是。? ?如果這三個條件同時滿足,則:“我一定要嫁給他!!!”? ?如果三個條件有為真的情況,則:“嫁吧,比上不足,比下有余。” ?如果三個條件都不滿足,則:“不嫁!”
思路分析:
1.定義三個變量用于保存對象的身高,財富,顏值,這里僅僅體現數值即可。 int height = scanner.nextInt(); double wealth= scanner.nextDouble();; boolean appearance = scanner.nextBoolean(); 2.用if判斷對象的身高,財富,顏值是否達到心中標準 if(height>180 ){} …. 3. 輸出結果
分支結構(switch)
格式: switch(表達式) { case 值1: 語句體1; break; case 值2: 語句體2; break; … default: 語句體n+1; [break;] }
用switch來實現:
需求:根據用于指定月份,打印該月份所屬的季節。 比如:3,4,5 春季? ?6,7,8 夏季? ? 9,10,11 秋季? ? ? ? ?12, 1, 2 冬季
思路:
1.定義一個變量用于接受輸入的月份。 int month= scanner.nextInt(); 2.用switch判斷月份: switch(month){ case 3: case 4: case 5:System.out.print(“春暖花開”);break; …. } 3. 輸出結果
循環結構(for)
格式: for (初始化語句;條件判斷語句;條件控制語句) { 循環體語句; }
執行流程:
執行初始化語句 執行條件判斷語句,看其結果是true還是false
如果是false,循環結束
如果是true,繼續執行 執行循環體語句 執行條件控制語句 回到2繼續
循環結構(while)
完整格式: 初始化語句; while (條件判斷語句) { 循環體語句; 條件控制語句; }
執行流程:
執行初始化語句 執行條件判斷語句,看其結果是true還是false
如果是false,循環結束
如果是true,繼續執行 執行循環體語句 執行條件控制語句 回到2繼續
循環結構(do...while)
基本格式: do { 循環體語句; }while(條件判斷語句); 完整格式: 初始化語句; do { 循環體語句; 條件控制語句; }while(條件判斷語句);
看了上面的循環的基本語法和基礎,這里來總結一下它們的區別
三種循環的區別
for循環和while循環先判斷條件是否成立,然后決定是否執行循環體(先判斷后執行)
do...while循環先執行一次循環體,然后判斷條件是否成立,是否繼續執行循環體(先執行后判斷)
for和while的區別:
條件控制語句所控制的自增變量,因為歸屬for循環的語法結構中,在for循環結束后,就不能再次被訪問到了 ? ?條件控制語句所控制的自增變量,對于while循環來說不歸屬其語法結構中,在while循環結束后,該變量還可以繼續使用
死循環格式: for(;;) { } ? ? while(true) { } ? ? do{ }while(true);
while的死循環格式是最常用的 命令提示符窗口中Ctrl+C可以結束死循環
流程控制語句:循環嵌套
將一個循環放在另一個循環體內,就形成了嵌套循環。其中, for ,while ,do…while均可以作為外層循環或內層循環。
實質上,嵌套循環就是把內層循環當成外層循環的循環體。當只有內層循環的循環條件為false時,才會完全跳出內層循環,才可結束外層的當次循環,開始下一次的循環。
設外層循環次數為m次,內層為n次,則內層循環體實際上需要執行m*n次。
for ( ;; ) { for( ;; ) { .... } }
跳轉控制語句
continue ? ?用在循環中,基于條件控制,跳過某次循環體內容的執行,繼續下一次的執行
break ? ?用在循環中,基于條件控制,終止循環體內容的執行,也就是說結束當前的整個循環
現在來做一個猜數字的游戲程序:
需求:程序自動生成一個1-100之間的數字,使用程序實現猜出這個數字是多少? 當猜錯的時候根據不同情況給出相應的提示 如果猜的數字比真實數字大,提示你猜的數據大了 如果猜的數字比真實數字小,提示你猜的數據小了 如果猜的數字與真實數字相等,提示恭喜你猜中了
分析:
要完成猜數字的游戲,首先需要有一個要猜的數字,使用隨機數生成該數字,范圍1到100 因為無法預知幾次能夠猜中,因此猜數字這個操作應該是反復進行的,需要使用循環,而while循環通常用于描述未知循環次數的循環 使用程序實現猜數字,每次均要輸入猜測的數字值,需要使用鍵盤錄入實現 比較輸入的數字和系統產生的數據,需要使用分支語句。這里使用if..else..if..格式,根據不同情況進行猜測結果顯示,當猜中后使用break結束循環即可
99乘法表
需求:在控制臺輸出所有的99乘法表
首先有9行,所以確定一個循環,從1到9。 for(int i=1;i<=9;i++){ } 2.對于第i行,都有j列,1<=j<=i for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ …. } } 3. 輸出結果
關于JAVA流程控制語句大概就介紹到這里了,感恩能與大家在華為云遇見!希望能與大家一起在華為云社區共同成長。
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。