1. 程式人生 > 其它 >5.3.Java流程控制之選擇結構

5.3.Java流程控制之選擇結構

1.if單選擇結構

  • 我們很多時候需要去判斷一個東西是否可行,然後我們才去執行,這樣一個過程在程式中用if語句來表示

  • 語法:

if(布林表示式){
//如果布林表示式為true將執行的語句
}

package com.lanseyutou.struct;

import java.util.Scanner;

public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("請輸入內容:");

String s = scanner.nextLine();

//equals:判斷字串師傅相等
if (s.equals("Hello")){
System.out.println(s);
}

System.out.println("End");

scanner.close();

}
}

/*
請輸入內容:
Hello
Hello
End
*/

2.if雙選擇結構

if(布林表示式){
//如果布林表示式的值為true
}else{
//如果布林表示式的值為false
}

package com.lanseyutou.struct;

import java.util.Scanner;

public class IfDemo02 {
public static void main(String[] args) {
//及格與不及格
Scanner scanner = new Scanner(System.in);

System.out.println("請輸入成績:");

int score = scanner.nextInt();

if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}

scanner.close();

}
}

/*
請輸入成績:
60
及格
*/

3.if多選擇結構

if(布林表示式1){
//如果布林表示式1的值為true執行程式碼
}else if(布林表示式2){
//如果布林表示式2的值為true執行程式碼
}else if(布林表示式 3){
//如果布林表示式3的值為true執行程式碼
}else{
//如果以上布林表示式都不為true執行程式碼
}

package com.lanseyutou.struct;

import java.util.Scanner;

public class IfDemo03 {
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("請輸入成績:");
int score = scanner.nextInt();

if(score==100){
System.out.println("恭喜滿分");
}else if (score>=90 && score<100){
System.out.println("A級");
}else if (score>=80 && score<90){
System.out.println("B級");
}else if (score>=70 && score<80){
System.out.println("C級");
}else if (score>=60 && score<70){
System.out.println("D級");
}else if (score>=0 && score<60){
System.out.println("不及格");
}else{
System.out.println("成績不合法");
}
}
}

/*
請輸入成績:
120
成績不合法

請輸入成績:
70
C級
*/

4.巢狀的if結構

  • 使用巢狀的if...else語句是合法的。也就是說你可以在另一個if或者else if語句中使用if或者else| if 語句。你可以像if 語句一樣巢狀else if...else。

  • 語法:

    if(布林表示式1){
    //如果布林表示式1的值為true執行程式碼
    if(布林表示式2){
    //如果布林表示式2的值為true執行程式碼
    }
    }
  • 使用者輸入一個1-100的數,找出來他

5.switch多選擇結構

  • 多選擇結構還有一個實現方式就是switch case語句。

  • switch case語句判斷一個變數與一系列值中某個值是否相等,每個值稱為一個分支。

  • switch語句中的變數型別可以是:

    • byte、short、int或者char。

    • 從Java SE 7開始 switch 支援字串String型別了 同時 case 標籤必須為字串常量或字面量。

switch(expression){
case value :
//語句
break;//可選
case value :
//語句
break;//可選

//你可以有任意數量的case語句
default : //可選
//語句
}
//break是停止執行,如果沒有break就會被case穿透執行之後所有的輸出
package com.lanseyutou.struct;

public class SwitchDemo01 {
public static void main(String[] args) {

char grade = 'C';

switch(grade){
case 'A':
System.out.println("優秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中等");
case 'D':
System.out.println("及格");
case 'E':
System.out.println("掛科");
default:
System.out.println("未知等級");
}
}
}

/*
中等
及格
掛科
未知等級
*/
package com.lanseyutou.struct;

public class SwitchDemo01 {
public static void main(String[] args) {

char grade = 'C';

switch(grade){
case 'A':
System.out.println("優秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中等");
break;
case 'D':
System.out.println("及格");
break;
case 'E':
System.out.println("掛科");
break;
default:
System.out.println("未知等級");
break;
}
}
}

/*
中等
*/
//從Java SE 7開始   switch 支援字串String型別了    同時 case 標籤必須為字串常量或字面量。

//字元的本質還是數字

//反編譯 java——class(位元組碼檔案)——反編譯(可用Idea(快捷鍵+shift+alt+s))

package com.lanseyutou.struct;

public class SwitchDemo02 {
public static void main(String[] args) {
String name = "藍色芋頭";

switch(name){
case "乾飯":
System.out.println("乾飯");
break;
case "藍色芋頭":
System.out.println("藍色芋頭");
break;
default:
System.out.println("非法名稱");
}
}
}

/*
藍色芋頭
*/

下圖路徑即為class檔案所在路徑,可以把class檔案拖入java程式資料夾裡即可用IDEA開啟反編譯檔案

通過反編譯檔案即可看到 漢字對應了一串數字,用到了hashCode