程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 【原】Java學習筆記005 - 流程控制

【原】Java學習筆記005 - 流程控制

編輯:關於JAVA

【原】Java學習筆記005 - 流程控制。本站提示廣大學習愛好者:(【原】Java學習筆記005 - 流程控制)文章只能為提供參考,不一定能成為您想要的結果。以下是【原】Java學習筆記005 - 流程控制正文


 1 package cn.temptation;
 2 
 3 public class Sample01 {
 4     public static void main(String[] args) {
 5         // 程序的流程控制(流程結構):順序結構、選擇結構、循環結構
 6         
 7         // 順序結構:從上向下,順序執行
 8         System.out.println("出生...");
 9         System.out.println("享受人生...");
10         System.out.println("掛了...");
11     }
12 }
 1 package cn.temptation;
 2 
 3 public class Sample02 {
 4     public static void main(String[] args) {
 5         // 選擇結構:1、if語句塊; 2、switch語句塊
 6         
 7         // if語句塊
 8         
 9         // 形式1、if(比較表達式) { ... }
10         int i = 2;
11         
12 //        if (i != 3) {
13 //            System.out.println(i);
14 //        }
15         
16         // 注意:
17         // 1、比較表達式的結果必須是一個boolean類型的值
18         // 2、if語句如果不使用大括號,語法上可以;但是不使用大括號,if語句塊只會影響其後的一行語句
19         
20 //        if (i != 3)
21 //            System.out.println(i);
22         
23         // 下面執行結果為2,3
24 //        if (i != 3) {
25 //            System.out.println(i);
26 //            System.out.println(++i);
27 //        }
28         
29         // 下面執行結果為2,3
30 //        if (i != 3) 
31 //            System.out.println(i);
32 //            System.out.println(++i);
33         
34         // 下面執行無結果
35 //        if (i == 3) {
36 //            System.out.println(i);
37 //            System.out.println(++i);
38 //        }
39         
40         // 下面執行結果為3,從執行結果得知,if無大括號的語句塊後的第二行語句開始,就不再受if語句塊的影響
41         if (i == 3) 
42             System.out.println(i);
43             System.out.println(++i);
44     }
45 }
 1 package cn.temptation;
 2 
 3 public class Sample03 {
 4     public static void main(String[] args) {
 5         // 形式2、if(比較表達式) { ... } else { ... }
 6         int i = 2;
 7         int j = 3;
 8 
 9         if (i == j) {
10             System.out.println("i等於j");
11         } else {
12             System.out.println("i不等於j");
13         }
14         
15         // 聯想一下,這種形式的if結構(if...else結構)和 三元運算符的效果差不多
16     }
17 }
 1 package cn.temptation;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Sample04 {
 6     public static void main(String[] args) {
 7         // 需求:使用if...else...結構獲取通過鍵盤錄入的三個數字中最大的一個
 8         
 9         // 聲明三個變量來接收鍵盤錄入的數字
10         Scanner input = new Scanner(System.in);
11         // 一行中聲明多個變量
12         int i, j, k;
13         System.out.println("輸入第一個數字:");
14         i = input.nextInt();
15         System.out.println("輸入第二個數字:");
16         j = input.nextInt();
17         System.out.println("輸入第三個數字:");
18         k = input.nextInt();
19         input.close();
20         
21         // 使用if...else...結構比較這三個數字
22         int temp = 0;
23         int max = 0;
24         
25 //        // 寫法1、分步操作
26 //        // ① 先把i、j進行比較得出較大的一個賦值給臨時變量temp
27 //        if (i > j) {
28 //            temp = i;
29 //        } else {
30 //            temp = j;
31 //        }
32 //        
33 //        // ② 再把temp、k進行比較得出最大的一個賦值給最終變量max
34 //        if (temp > k) {
35 //            max = temp;
36 //        } else {
37 //            max = k;
38 //        }
39         
40         // 寫法2、if...else...的嵌套
41         if (i > j) {
42             // 滿足該條件時,說明i是i、j中較大的
43             if (i > k) {
44                 max = i;
45             } else {
46                 max = k;
47             }
48         } else {
49             // 滿足該條件時,說明j是i、j中較大的
50             if (j > k) {
51                 max = j;
52             } else {
53                 max = k;
54             }
55         }
56         
57         System.out.println("輸入的數字為:" + i + "," + j + "," + k + "中,最大的一個數字為:" + max);
58     }
59 }
 1 package cn.temptation;
 2 
 3 public class Sample05 {
 4     public static void main(String[] args) {
 5         // 形式3
 6         // if(比較表達式) { ... }
 7         // else if(比較表達式) { ... }
 8         // else if(比較表達式) { ... }
 9         // ...
10         // else { ... }
11         // 執行時,依次判斷每一個比較表達式是否為true,如果為true,就執行該if語句塊中的內容
12         
13         // 注意:else if之間有一個空格
14         
15         int i = 2;
16         
17 //        if (i == 3) {
18 //            System.out.println("i等於3");
19 //        } else if (i == 5) {
20 //            System.out.println("i等於5");
21 //        } else {
22 //            System.out.println("i等於其他值");
23 //        }
24         
25         // 注意:如果多個比較表達式均為true(多個條件均成立),那麼會執行第1個為true的if語句塊中的內容
26         //        後續為true的if語句塊不會再走入了
27 //        if (i < 3) {
28 //            System.out.println("i小於3");
29 //        } else if (i < 5) {
30 //            System.out.println("i小於5");
31 //        } else {
32 //            System.out.println("i等於:" + i);
33 //        }
34         
35         if (i < 5) {
36             System.out.println("i小於5");
37         } else if (i < 3) {
38             System.out.println("i小於3");
39         } else {
40             System.out.println("i等於:" + i);
41         }
42     }
43 }
 1 package cn.temptation;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Sample06 {
 6     public static void main(String[] args) {
 7         // 需求:根據鍵盤錄入的數字,判斷輸入的數字為奇數還是偶數?(分別使用if結構 和 三元運算符實現)
 8         Scanner input = new Scanner(System.in);
 9         System.out.println("輸入一個數字:");
10         int i = input.nextInt();
11         input.close();
12         
13         // 寫法1、使用if結構
14 //        if (i % 2 == 0) {
15 //            System.out.println("該數為偶數");
16 //        } else {
17 //            System.out.println("該數為奇數");
18 //        }
19         
20         // 寫法2、三元運算符
21         // 因為三元運算符 和 if...else...結構的相近,考慮直接把if...else結構中的語句放到三元運算符中,這是生搬硬套,語法出錯
22 //        (i % 2 == 0) ? (System.out.println("該數為偶數")) : (System.out.println("該數為奇數"));
23         
24         // 變通寫法1、本質上和寫法1是一樣的
25 //        boolean result = (i % 2 == 0) ? true : false;
26 //        if (result) {
27 //            System.out.println("該數為偶數");
28 //        } else {
29 //            System.out.println("該數為奇數");
30 //        }
31         
32         // 變通寫法2、純粹使用三元運算符
33         // 根據是否為偶數獲取相應的字符串
34         String msg = (i % 2 == 0) ? "該數為偶數" : "該數為奇數";
35         // 輸出字符串的內容
36         System.out.println(msg);
37     }
38 }
 1 package cn.temptation;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Sample07 {
 6     public static void main(String[] args) {
 7         // 需求:根據鍵盤錄入的分數數字,判斷輸入的分數是優秀(90~100)、良好(80~89)、及格(60~79)、不及格(0~59)
 8         Scanner input = new Scanner(System.in);
 9         System.out.println("輸入一個分數:");
10         int score = input.nextInt();
11         input.close();
12         
13         // 下句表示范圍的寫法是錯誤的,畫個數軸看一下
14 //        if (score >= 90 || score <= 100) {
15         if (score >= 90 && score <= 100) {
16             System.out.println("優秀");
17         } else if (score >= 80 && score <= 89) {
18             System.out.println("良好");
19         } else if (score >= 60 && score <= 79) {
20             System.out.println("及格");
21         } else if (score >= 0 && score <= 59) {
22             System.out.println("不及格");
23         } else {
24             System.out.println("輸入的分數應該在【0~100】之間");
25         }
26         
27         // 注意:仔細看看需求,其實隱含了一個條件:即分數的范圍是在0~100之間
28     }
29 }
 1 package cn.temptation;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Sample08 {
 6     public static void main(String[] args) {
 7         // 需求:根據鍵盤錄入的月份數字,判斷是哪一個季節?(3~5月為春季,6~8月為夏季,9~11月為秋季,12~2月為冬季)
 8         Scanner input = new Scanner(System.in);
 9         System.out.println("輸入一個月份:");
10         int month = input.nextInt();
11         input.close();
12         
13         // 寫法1
14         if (month >= 3 && month <= 5) {
15             System.out.println("Spring");
16         } else if (month >= 6 && month <= 8) {
17             System.out.println("Summer");
18         } else if (month >= 9 && month <= 11) {
19             System.out.println("Autumn");
20         // 下句寫法沒有滿足條件的數字
21 //        } else if (month >= 12 && month <= 2) {
22         } else if (month == 12 || month == 1 || month == 2) {
23             System.out.println("Winter");
24         } else {
25             System.out.println("輸入的月份應該在【1~12】之間");
26         }
27         
28         // 寫法2
29         int result = month / 3;
30         
31         if (month == 0 || month == 13 || month == 14 || result < 0 || result > 4) {
32             System.out.println("輸入的月份應該在【1~12】之間");
33         } else if (result < 1) {
34             System.out.println("Winter");
35         } else if (result < 2) {
36             System.out.println("Spring");
37         } else if (result < 3) {
38             System.out.println("Summer");
39         } else if (result < 4) {
40             System.out.println("Autumn");
41         } else {
42             System.out.println("Winter");
43         }
44         
45         // 編寫代碼及測試時,要充分考慮,特別是邊界值,考慮時不要遺漏
46     }
47 }
 1 package cn.temptation;
 2 
 3 public class Sample09 {
 4     public static void main(String[] args) {
 5         // 選擇結構:switch結構
 6         
 7 //        switch (變量) {
 8 //        case 值1:
 9 //            break;
10 //        case 值2:
11 //            break;
12 //        ...
13 //        case 值n:
14 //            break;
15 //        default:
16 //            break;
17 //        }
18         
19         // 注意:
20         // 1、switch後括號中的內容有一些限制:byte、short、int、long、char
21         //        JDK 5後可以使用枚舉;JDK 7後可以使用字符串類型
22         // 2、case:後面的值拿來和switch括號中的內容進行比較的,當比較結果為true時,會執行該case語句塊中的內容
23         // 3、break:英文是中斷的意思,也就是說後續都不做了,作用范圍到switch右側的大括號為止
24         // 4、default:英文是默認的意思,如果case條件的值都不能匹配switch括號中的值,那麼執行default語句塊中的內容
25         // 5、switch結構中可以沒有default部分,但是要求加上default部分
26         // 6、switch結構中可以只有default部分,表示默認就執行該default語句塊中的內容
27         
28         int i = 2;
29         
30         switch (i) {
31         case 1:
32             System.out.println("i等於1");
33             break;
34         case 2:
35             System.out.println("i等於2");
36             break;
37         case 3:
38             System.out.println("i等於3");
39             break;
40         default:
41             System.out.println("i等於其他值");
42             break;
43         }
44         
45         System.out.println("這裡不會收到switch結構中的break語句的影響");
46         
47         switch (i) {
48         default:
49             System.out.println("switch結構中只有default部分");
50             break;
51         }
52     }
53 }
 1 package cn.temptation;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Sample10 {
 6     public static void main(String[] args) {
 7         // 注意:
 8         // 1、case部分的值不能重復,否則有語法錯誤:Duplicate case
 9         // 2、default部分不是非得放在switch結構中的最後,可以放在任何和case同級的位置,只是習慣性的放在最後
10         // 3、放在最後的default部分,可以不寫break語句,但是建議寫上
11         
12         // 需求:根據鍵盤錄入的數字,使用switch結構判斷是星期幾
13         Scanner input = new Scanner(System.in);
14         System.out.println("輸入一個數字作為星期幾:");
15         int weekDay = input.nextInt();
16         input.close();
17         
18         switch (weekDay) {
19         // default部分可以放在switch結構的最前端
20 //        default:
21 //            System.out.println("輸入不正確");
22 //            break;
23         case 1:
24             System.out.println("Monday");
25             break;
26         case 2:
27             System.out.println("Tuesday");
28             break;
29         // default部分可以放在switch結構的任意位置
30 //        default:
31 //            System.out.println("輸入不正確");
32 //            break;
33         case 3:
34             System.out.println("Wednesday");
35             break;
36         case 4:
37             System.out.println("Thursday");
38             break;
39         case 5:
40             System.out.println("Friday");
41             break;
42         case 6:
43             System.out.println("Saturday");
44             break;
45         case 7:
46             System.out.println("Sunday");
47             break;
48         default:
49             System.out.println("輸入不正確");
50             // 寫在最後的default部分中的break語句可以省略不寫
51 //            break;
52         }
53     }
54 }
 1 package cn.temptation;
 2 
 3 public class Sample11 {
 4     public static void main(String[] args) {
 5         // switch結構在JDK 7後支持字符串,case後就可以使用字符串
 6         String course = "Java";
 7         
 8         switch (course) {
 9         case "Android":
10             System.out.println("Android是主流的移動開發平台");
11             break;
12         case "Java":
13             System.out.println("Java真簡單");
14             break;
15         case "MySQL":
16             System.out.println("MySQL是主流的數據庫");
17             break;
18         default:
19             System.out.println("想混口飯吃,總得會一樣!");
20             break;
21         }
22     }
23 }
 1 package cn.temptation;
 2 
 3 public class Sample12 {
 4     public static void main(String[] args) {
 5         // 特別注意:
 6         // switch結構中,case部分需要結合break語句使用,如果只寫case部分不寫其相應的break語句,會發生"case擊穿"現象
 7         // 如果case部分沒有相應的break語句,當該case條件滿足時,執行該case部分的語句內容,並一直向下執行(無視其他case條件),直到遇見break為止
 8         // 如果一直沒有遇見break,以switch右側的大括號(switch結構作用域右側的邊界)作為執行結束的依據
 9         
10         int i = 2;
11         
12         switch (i) {
13         case 1:
14             System.out.println("i等於1");
15             break;
16         case 2:
17             System.out.println("i等於2");
18         case 3:
19             System.out.println("i等於3");
20 //            break;
21         default:
22             System.out.println("i等於其他值");
23             break;
24         }
25         
26         System.out.println("這裡會不會被執行到?");
27     }
28 }
 1 package cn.temptation;
 2 
 3 public class Sample13 {
 4     public static void main(String[] args) {
 5         int i = 2;
 6         
 7         // 問題1
 8 //        switch (i) {
 9 //        default:
10 //            i++;
11 //            break;
12 //        case 2:
13 //            ++i;
14 //            break;
15 //        case 3:
16 //            ++i;
17 //            break;
18 //        case 4:
19 //            ++i;
20 //            break;
21 //        }
22 //        
23 //        System.out.println(i);    // 3
24         
25         // default部分放在switch結構的最前面,也不會第一個執行,也優先匹配case條件
26         
27         // 問題2
28         switch (i) {
29         default:
30             i++;
31         case 3:
32             ++i;
33         case 4:
34             ++i;
35         }
36         
37         System.out.println(i);
38     }
39 }
  1 package cn.temptation;
  2 
  3 import java.util.Scanner;
  4 
  5 public class Sample14 {
  6     public static void main(String[] args) {
  7         // 需求:根據鍵盤錄入的數字,判斷是什麼季節?(分別使用if結構 和 switch結構)
  8         Scanner input = new Scanner(System.in);
  9         System.out.println("輸入一個月份:");
 10         int month = input.nextInt();
 11         input.close();
 12         
 13         // 寫法1、if結構
 14         if (month >= 3 && month <= 5) {
 15             System.out.println("Spring");
 16         } else if (month >= 6 && month <= 8) {
 17             System.out.println("Summer");
 18         } else if (month >= 9 && month <= 11) {
 19             System.out.println("Autumn");
 20         } else if (month == 12 || month == 1 || month == 2) {
 21             System.out.println("Winter");
 22         } else {
 23             System.out.println("輸入的月份應該在【1~12】之間");
 24         }
 25         
 26         // 寫法2、switch結構
 27 //        switch (month) {
 28 //        case 1:
 29 //            System.out.println("Winter");
 30 //            break;
 31 //        case 2:
 32 //            System.out.println("Winter");
 33 //            break;
 34 //        case 3:
 35 //            System.out.println("Spring");
 36 //            break;
 37 //        case 4:
 38 //            System.out.println("Spring");
 39 //            break;
 40 //        case 5:
 41 //            System.out.println("Spring");
 42 //            break;
 43 //        case 6:
 44 //            System.out.println("Summer");
 45 //            break;
 46 //        case 7:
 47 //            System.out.println("Summer");
 48 //            break;
 49 //        case 8:
 50 //            System.out.println("Summer");
 51 //            break;
 52 //        case 9:
 53 //            System.out.println("Autumn");
 54 //            break;
 55 //        case 10:
 56 //            System.out.println("Autumn");
 57 //            break;
 58 //        case 11:
 59 //            System.out.println("Autumn");
 60 //            break;
 61 //        case 12:
 62 //            System.out.println("Winter");
 63 //            break;
 64 //        default:
 65 //            System.out.println("輸入的月份應該在【1~12】之間");
 66 //            break;
 67 //        }
 68         
 69         // 因為switch結構中的很多case條件都做的是相同的事情,所以考慮優化一下寫法
 70         // 考慮把做相同事情的case條件合並到一起,使用case擊穿,這樣可以省略一些重復的代碼
 71         switch (month) {
 72         case 12:
 73         case 1:
 74         case 2:
 75             System.out.println("Winter");
 76             break;
 77         // 下句寫法語法錯誤:The operator || is undefined for the argument type(s) int, int
 78 //        case 3 || 4 || 5:
 79         case 3:
 80         case 4:
 81         case 5:
 82             System.out.println("Spring");
 83             break;
 84         case 6:
 85         case 7:
 86         case 8:
 87             System.out.println("Summer");
 88             break;
 89         case 9:
 90         case 10:
 91         case 11:
 92             System.out.println("Autumn");
 93             break;
 94         default:
 95             System.out.println("輸入的月份應該在【1~12】之間");
 96             break;
 97         }
 98     }
 99     // if結構 和 switch結構的區別:
100     // 1、if結構的括號內使用的是比較表達式,得到的結果是boolean類型的值
101     // 2、switch結構的case後面跟的是用來匹配的值
102     
103     // if結構 和 switch結構的選擇:
104     // 1、if結構用於條件描述的范圍比較大的場合
105     // 2、switch結構用於少量的有特定的值進行比較的場合
106 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved