5.3.Java流程控制之選擇結構
阿新 • • 發佈:2021-11-06
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