Java入門之~流程控制語句

      網友投稿 817 2022-05-28

      1流程控制語句(應用)

      在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。所以,我們必須清楚每條語句的執行流程。而且,很多時候要通過控制語句的執行順序來實現我們想要的功能。

      1.1 流程控制語句分類

      順序結構

      分支結構(if, switch)

      循環結構(for, while, do…while)

      1.2 順序結構

      順序結構是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先后順序,依次執行,程序中大多數的代碼都是這樣執行的。

      1.3 分支結構:if語句

      格式: if (關系表達式) { 語句體; }

      執行流程:

      ①首先計算關系表達式的值

      ②如果關系表達式的值為true就執行語句體

      ③如果關系表達式的值為false就不執行語句體

      ④繼續執行后面的語句內容

      示例:

      public class IfDemo { public static void main(String[] args) { System.out.println("開始"); //定義兩個變量 int a = 10; int b = 20; //需求:判斷a和b的值是否相等,如果相等,就在控制臺輸出:a等于b if(a == b) { System.out.println("a等于b"); } //需求:判斷a和c的值是否相等,如果相等,就在控制臺輸出:a等于c int c = 10; if(a == c) { System.out.println("a等于c"); } System.out.println("結束"); } }

      格式: if (關系表達式) { 語句體1; } else { 語句體2; }

      執行流程:

      Java入門之~流程控制語句

      ①首先計算關系表達式的值

      ②如果關系表達式的值為true就執行語句體1

      ③如果關系表達式的值為false就執行語句體2

      ④繼續執行后面的語句內容

      示例:

      public class IfDemo02 { public static void main(String[] args) { System.out.println("開始"); //定義兩個變量 int a = 10; int b = 20; b = 5; //需求:判斷a是否大于b,如果是,在控制臺輸出:a的值大于b,否則,在控制臺輸出:a的值不大于b if(a > b) { System.out.println("a的值大于b"); } else { System.out.println("a的值不大于b"); } System.out.println("結束"); } }

      if語句案例:奇偶數

      需求:任意給出一個整數,請用程序實現判斷該整數是奇數還是偶數,并在控制臺輸出該整數是奇數還是偶數。

      分析:

      ①為了體現任意給出一個整數,采用鍵盤錄入一個數據

      ②判斷整數是偶數還是奇數要分兩種情況進行判斷,使用if…else結構

      ③判斷是否偶數需要使用取余運算符實現該功能 number % 2 == 0

      ④根據判定情況,在控制臺輸出對應的內容

      import java.util.Scanner; public class IfTest01 { public static void main(String[] args) { //為了體現任意給出一個整數,采用鍵盤錄入一個數據。(導包,創建對象,接收數據) Scanner sc = new Scanner(System.in); System.out.println("請輸入一個整數:"); int number = sc.nextInt(); //判斷整數是偶數還是奇數要分兩種情況進行判斷,使用if..else結構 //判斷是否偶數需要使用取余運算符實現該功能 number % 2 == 0 //根據判定情況,在控制臺輸出對應的內容 if(number%2 == 0) { System.out.println(number + "是偶數"); } else { System.out.println(number + "是奇數"); } } }

      格式: if (關系表達式1) { 語句體1; } else if (關系表達式2) { 語句體2; } … else { 語句體n+1; }

      執行流程:

      ①首先計算關系表達式1的值

      ②如果值為true就執行語句體1;如果值為false就計算關系表達式2的值

      ③如果值為true就執行語句體2;如果值為false就計算關系表達式3的值

      ④…

      ⑤如果沒有任何關系表達式為true,就執行語句體n+1。

      示例:鍵盤錄入一個星期數(1,2,…7),輸出對應的星期一,星期二,…星期日

      import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { System.out.println("開始"); // 需求:鍵盤錄入一個星期數(1,2,...7),輸出對應的星期一,星期二,...星期日 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個星期數(1-7):"); int week = sc.nextInt(); if(week == 1) { System.out.println("星期一"); } else if(week == 2) { System.out.println("星期二"); } else if(week == 3) { System.out.println("星期三"); } else if(week == 4) { System.out.println("星期四"); } else if(week == 5) { System.out.println("星期五"); } else if(week == 6) { System.out.println("星期六"); } else { System.out.println("星期日"); } System.out.println("結束"); } }

      if語句格式3案例:

      需求:小明快要期末考試了,小明爸爸對他說,會根據他不同的考試成績,送他不同的禮物,假如你可以控制小明的得分,請用程序實現小明到底該獲得什么樣的禮物,并在控制臺輸出。

      分析:

      ①小明的考試成績未知,可以使用鍵盤錄入的方式獲取值

      ②由于獎勵種類較多,屬于多種判斷,采用if…else…if格式實現

      ③為每種判斷設置對應的條件

      ④為每種判斷設置對應的獎勵

      1.4 分支結構:switch語句

      格式

      switch (表達式) { case 1: 語句體1; break; case 2: 語句體2; break; ... default: 語句體n+1; break; }

      執行流程:

      首先計算出表達式的值

      其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結 束。

      最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。

      需求:一年有12個月,分屬于春夏秋冬4個季節,鍵盤錄入一個月份,請用程序實現判斷該月份屬于哪個季節,并輸出。

      運行結果:

      春:3、4、5夏:6、7、8秋:9、10、11冬:1、2、12

      示例代碼:

      public class Demo1 { public static void main(String[] args) { //鍵盤錄入月份數據,使用變量接收 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個月份:"); int month = sc.nextInt(); //case穿透 switch(month) { case 1: case 2: case 12: System.out.println("冬季"); break; case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; default: System.out.println("你輸入的月份有誤"); } }}

      注意:如果switch中得case,沒有對應break的話,則會出現case穿透的現象。

      1.5 循環結構:for循環

      循環:

      循環語句可以在滿足循環條件的情況下,反復執行某一段代碼,這段被重復執行的代碼被稱為循環體語句,當反復 執行這個循環體時,需要在合適的時候把循環判斷條件修改為false,從而結束循環,否則循環將一直執行下去,形 成死循環。

      for循環格式:

      for (初始化語句;條件判斷語句;條件控制語句) { 循環體語句;}

      格式解釋:

      初始化語句: 用于表示循環開啟時的起始狀態,簡單說就是循環開始的時候什么樣

      條件判斷語句:用于表示循環反復執行的條件,簡單說就是判斷循環是否能一直執行下去

      循環體語句: 用于表示循環反復執行的內容,簡單說就是循環反復執行的事情

      條件控制語句:用于表示循環執行中每次變化的內容,簡單說就是控制循環是否能執行下去

      執行流程:

      ①執行初始化語句

      ②執行條件判斷語句,看其結果是true還是false

      如果是false,循環結束

      如果是true,繼續執行

      ③執行循環體語句

      ④執行條件控制語句

      ⑤回到②繼續

      需求:在控制臺輸出1-5和5-1的數據

      示例代碼:

      public class ForTest01 { public static void main(String[] args) { //需求:輸出數據1-5 for(int i=1; i<=5; i++) { System.out.println(i); } System.out.println("--------"); //需求:輸出數據5-1 for(int i=5; i>=1; i--) { System.out.println(i); } }}

      需求:求1-5之間的數據和,并把求和結果在控制臺輸出

      示例代碼:

      public class ForTest02 { public static void main(String[] args) { //求和的最終結果必須保存起來,需要定義一個變量,用于保存求和的結果,初始值為0 int sum = 0; //從1開始到5結束的數據,使用循環結構完成 for(int i=1; i<=5; i++) { //將反復進行的事情寫入循環結構內部 // 此處反復進行的事情是將數據 i 加到用于保存最終求和的變量 sum 中 sum += i; /* sum += i; sum = sum + i; 第一次:sum = sum + i = 0 + 1 = 1; 第二次:sum = sum + i = 1 + 2 = 3; 第三次:sum = sum + i = 3 + 3 = 6; 第四次:sum = sum + i = 6 + 4 = 10; 第五次:sum = sum + i = 10 + 5 = 15; */ } //當循環執行完畢時,將最終數據打印出來 System.out.println("1-5之間的數據和是:" + sum); }}

      本題要點:

      今后遇到的需求中,如果帶有求和二字,請立即聯想到求和變量

      求和變量的定義位置,必須在循環外部,如果在循環內部則計算出的數據將是錯誤的

      需求:求1-100之間的偶數和,并把求和結果在控制臺輸出 }

      示例代碼:

      public class ForTest03 { public static void main(String[] args) { //求和的最終結果必須保存起來,需要定義一個變量,用于保存求和的結果,初始值為0 int sum = 0; //對1-100的數據求和與1-5的數據求和幾乎完全一樣,僅僅是結束條件不同 for(int i=1; i<=100; i++) { //對1-100的偶數求和,需要對求和操作添加限制條件,判斷是否是偶數 if(i%2 == 0) { sum += i; } } //當循環執行完畢時,將最終數據打印出來 System.out.println("1-100之間的偶數和是:" + sum); }}

      需求:在控制臺輸出所有的“水仙花數”

      解釋:什么是水仙花數?

      水仙花數,指的是一個三位數,個位、十位、百位的數字立方和等于原數

      例如153 3*3*3 + 5*5*5 + 1*1*1 = 153

      思路:

      獲取所有的三位數,準備進行篩選,最小的三位數為100,最大的三位數為999,使用for循環獲取

      獲取每一個三位數的個位,十位,百位,做if語句判斷是否是水仙花數

      示例代碼

      public class ForTest04 { public static void main(String[] args) { //輸出所有的水仙花數必然要使用到循環,遍歷所有的三位數,三位數從100開始,到999結束 for(int i=100; i<1000; i++) { //在計算之前獲取三位數中每個位上的值 int ge = i%10; int shi = i/10%10; int bai = i/10/10%10; //判定條件是將三位數中的每個數值取出來,計算立方和后與原始數字比較是否相等 if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { //輸出滿足條件的數字就是水仙花數 System.out.println(i); } } }}

      需求:統計“水仙花數”一共有多少個,并在控制臺輸出個數

      示例代碼:

      public class ForTest05 { public static void main(String[] args) { //定義變量count,用于保存“水仙花數”的數量,初始值為0 int count = 0; //輸出所有的水仙花數必然要使用到循環,遍歷所有的三位數,三位數從100開始,到999結束 for(int i=100; i<1000; i++) { //在計算之前獲取三位數中每個位上的值 int ge = i%10; int shi = i/10%10; int bai = i/10/10%10; //在判定水仙花數的過程中,滿足條件不再輸出,更改為修改count的值,使count+1 if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { count++; } } //打印輸出最終結果 System.out.println("水仙花共有:" + count + "個"); }}

      本題要點:

      今后如果需求帶有統計xxx,請先想到計數器變量

      計數器變量定義的位置,必須在循環外部

      1.6 循環結構: while循環

      while循環完整格式:

      初始化語句;while (條件判斷語句) { 循環體語句; 條件控制語句;}

      while循環執行流程:

      ①執行初始化語句

      ②執行條件判斷語句,看其結果是true還是false

      如果是false,循環結束

      如果是true,繼續執行

      ③執行循環體語句

      ④執行條件控制語句

      ⑤回到②繼續

      示例代碼:

      public class WhileDemo { public static void main(String[] args) { //需求:在控制臺輸出5次"HelloWorld" //for循環實現 for(int i=1; i<=5; i++) { System.out.println("HelloWorld"); } System.out.println("--------"); //while循環實現 int j = 1; while(j<=5) { System.out.println("HelloWorld"); j++; } }}

      需求:世界最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如我有一張足夠大的紙,它的厚度是0.1毫米。請問,我折疊多少次,可以折成珠穆朗瑪峰的高度?

      示例代碼:

      public class WhileTest { public static void main(String[] args) { //定義一個計數器,初始值為0 int count = 0; //定義紙張厚度 double paper = 0.1; //定義珠穆朗瑪峰的高度 int zf = 8844430; //因為要反復折疊,所以要使用循環,但是不知道折疊多少次,這種情況下更適合使用while循環 //折疊的過程中當紙張厚度大于珠峰就停止了,因此繼續執行的要求是紙張厚度小于珠峰高度 while(paper <= zf) { //循環的執行過程中每次紙張折疊,紙張的厚度要加倍 paper *= 2; //在循環中執行累加,對應折疊了多少次 count++; } //打印計數器的值 System.out.println("需要折疊:" + count + "次"); }}

      1.7 循環結構:do-while循環

      完整格式:

      初始化語句;do { 循環體語句; 條件控制語句;}while(條件判斷語句);

      執行流程:

      ① 執行初始化語句

      ② 執行循環體語句

      ③ 執行條件控制語句

      ④ 執行條件判斷語句,看其結果是true還是false

      如果是false,循環結束

      如果是true,繼續執行

      ⑤ 回到②繼續

      示例代碼:

      public class DoWhileDemo { public static void main(String[] args) { //需求:在控制臺輸出5次"HelloWorld" //for循環實現 for(int i=1; i<=5; i++) { System.out.println("HelloWorld"); } System.out.println("--------"); //do...while循環實現 int j = 1; do { System.out.println("HelloWorld"); j++; }while(j<=5); }}

      1.8 三種循環的區別(理解)

      三種循環的區別

      for循環和while循環先判斷條件是否成立,然后決定是否執行循環體(先判斷后執行)

      do…while循環先執行一次循環體,然后判斷條件是否成立,是否繼續執行循環體(先執行后判斷)

      for循環和while的區別

      條件控制語句所控制的自增變量,因為歸屬for循環的語法結構中,在for循環結束后,就不能再次被訪問到了

      條件控制語句所控制的自增變量,對于while循環來說不歸屬其語法結構中,在while循環結束后,該變量還可以繼續使用

      死循環(無限循環)的三種格式

      for(;;){}

      while(true){}

      do {} while(true);

      1.9 跳轉控制語句(掌握)

      跳轉控制語句(break)

      跳出循環,結束循環

      跳轉控制語句(continue)

      跳過本次循環,繼續下次循環

      注意: continue只能在循環中進行使用!

      1.10 循環嵌套(理解)

      循環嵌套概述:在循環中,繼續定義循環

      示例代碼:

      public static void main(String[] args) { //外循環控制小時的范圍,內循環控制分鐘的范圍 for (int hour = 0; hour < 24; hour++) { for (int minute = 0; minute < 60; minute++) { System.out.println(hour + "時" + minute + "分"); } System.out.println("--------"); } }

      理解:

      請反復理解這句話(整個內循環,就是外循環的一個循環體,內部循環體沒有執行完畢,外循環是不會繼續向下執行的)

      結論:

      外循環執行一次,內循環執行一圈

      1.11 Random

      概述:

      Random類似Scanner,也是Java提供好的API,內部提供了產生隨機數的功能

      API后續課程詳細講解,現在可以簡單理解為Java已經寫好的代碼

      使用步驟:

      導入包

      import java.util.Random;

      創建對象

      Random r = new Random();

      產生隨機數

      int num = r.nextInt(10);

      解釋: 10代表的是一個范圍,如果括號寫10,產生的隨機數就是0-9,括號寫20,參數的隨機數則是0-19

      示例代碼:

      import java.util.Random;public class RandomDemo { public static void main(String[] args) { //創建對象 Random r = new Random(); //用循環獲取10個隨機數 for(int i=0; i<10; i++) { //獲取隨機數 int number = r.nextInt(10); System.out.println("number:" + number); } //需求:獲取一個1-100之間的隨機數 int x = r.nextInt(100) + 1; System.out.println(x); }}

      需求:

      程序自動生成一個1-100之間的數字,使用程序實現猜出這個數字是多少?

      當猜錯的時候根據不同情況給出相應的提示

      A. 如果猜的數字比真實數字大,提示你猜的數據大了

      B. 如果猜的數字比真實數字小,提示你猜的數據小了

      C. 如果猜的數字與真實數字相等,提示恭喜你猜中了

      示例代碼:

      import java.util.Random;import java.util.Scanner;public class RandomTest { public static void main(String[] args) { //要完成猜數字的游戲,首先需要有一個要猜的數字,使用隨機數生成該數字,范圍1到100 Random r = new Random(); int number = r.nextInt(100) + 1; while(true) { //使用程序實現猜數字,每次均要輸入猜測的數字值,需要使用鍵盤錄入實現 Scanner sc = new Scanner(System.in); System.out.println("請輸入你要猜的數字:"); int guessNumber = sc.nextInt(); //比較輸入的數字和系統產生的數據,需要使用分支語句。 //這里使用if..else..if..格式,根據不同情況進行猜測結果顯示 if(guessNumber > number) { System.out.println("你猜的數字" + guessNumber + "大了"); } else if(guessNumber < number) { System.out.println("你猜的數字" + guessNumber + "小了"); } else { System.out.println("恭喜你猜中了"); break; } } }}

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:基于OMAPL138+FPGA多波束測深系統儲存子系統設計與實現
      下一篇:05_說說Flink架構中的角色和作用?
      相關文章
      国产亚洲3p无码一区二区| 无码专区一va亚洲v专区在线| 亚洲午夜爱爱香蕉片| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲最新黄色网址| 亚洲午夜精品一区二区| 国产成A人亚洲精V品无码性色| 亚洲中文字幕无码中文字在线| 国产亚洲精品高清在线| 精品国产香蕉伊思人在线在线亚洲一区二区 | 亚洲精品成a人在线观看☆| 亚洲AV成人影视在线观看 | 国产日产亚洲系列最新| 亚洲综合国产精品第一页| 亚洲乱码日产精品a级毛片久久| 亚洲成A人片在线观看中文| 亚洲第一网站男人都懂| 中文字幕亚洲不卡在线亚瑟| 久久亚洲欧洲国产综合| 在线a亚洲v天堂网2019无码| 在线精品亚洲一区二区三区| 国产亚洲av人片在线观看| 亚洲精品无码永久在线观看你懂的| 亚洲色WWW成人永久网址| 亚洲精品字幕在线观看| 亚洲春色在线视频| 亚洲美女免费视频| 国产成人精品日本亚洲专一区| 亚洲日本人成中文字幕| 亚洲精品无码久久久久A片苍井空| 欧洲亚洲国产精华液| 亚洲国产精品自产在线播放| 国产午夜亚洲精品国产成人小说| 亚洲国产三级在线观看| 亚洲另类激情综合偷自拍 | 久久精品国产亚洲αv忘忧草| 亚洲夂夂婷婷色拍WW47 | 亚洲精品国产电影午夜| ass亚洲**毛茸茸pics| 亚洲成aⅴ人片久青草影院按摩| 亚洲第一黄色网址|