JAVA 入坑教程 | 章節七 條件分支結構


Java 分支結構 - if...else/switch


順序結構隻能順序執行,不能進行判斷和選擇,因此需要分支結構。


Java 有兩種分支結構:



  • if 語句

  • switch 語句




if 語句


一個 if 語句包含一個佈爾表達式和一條或多條語句。


語法


if 語句的用語法如下:


if(佈爾表達式){
//如果佈爾表達式為true將執行的語句
}

如果佈爾表達式的值為 true,則執行 if 語句中的代碼塊,否則執行 if 語句塊後面的代碼。


public class Test {
public static void main(String args[]){
int x = 10;
if( x < 20 ){
System.out.print("這是 if 語句");
}
}
}

以上代碼編譯運行結果如下:


這是 if 語句



if...else語句


if 語句後面可以跟 else 語句,當 if 語句的佈爾表達式值為 false 時,else 語句塊會被執行。


語法


if…else 的用法如下:


if(佈爾表達式){
//如果佈爾表達式的值為true
}else{
//如果佈爾表達式的值為false
}

實例


public class Test {
public static void main(String args[]){
int x = 30;
if( x < 20 ){
System.out.print("這是 if 語句");
}else{
System.out.print("這是 else 語句");
}
}
}

以上代碼編譯運行結果如下:


這是 else 語句



if...else if...else 語句


if 語句後面可以跟 elseif…else 語句,這種語句可以檢測到多種可能的情況。


使用 if,else if,else 語句的時候,需要註意下面幾點:



  1. if 語句至多有 1 個 else 語句,else 語句在所有的 elseif 語句之後。

  2. if 語句可以有若幹個 elseif 語句,它們必須在 else 語句之前。

  3. 一旦其中一個 else if 語句檢測為 true,其他的 else if 以及 else 語句都將跳過執行。


語法


if...else 語法格式如下:


if(佈爾表達式 1){
//如果佈爾表達式 1的值為true執行代碼
}else if(佈爾表達式 2){
//如果佈爾表達式 2的值為true執行代碼
}else if(佈爾表達式 3){
//如果佈爾表達式 3的值為true執行代碼
}else {
//如果以上佈爾表達式都不為true執行代碼
}

實例


public class Test {
public static void main(String args[]){
int x = 30;
if( x == 10 ){
System.out.print("Value of X is 10");
}else if( x == 20 ){
System.out.print("Value of X is 20");
}else if( x == 30 ){
System.out.print("Value of X is 30");
}else{
System.out.print("這是 else 語句");
}
}
}

以上代碼編譯運行結果如下:


Value of X is 30



嵌套的 if…else 語句


使用嵌套的 if…else 語句是合法的。也就是說你可以在另一個 if 或者 elseif 語句中使用 if 或者 elseif 語句。


語法


嵌套的 if…else 語法格式如下:


if(佈爾表達式 1){
////如果佈爾表達式 1的值為true執行代碼
if(佈爾表達式 2){
////如果佈爾表達式 2的值為true執行代碼
}
}

你可以像 if 語句一樣嵌套 else if...else。


實例


public class Test {
public static void main(String args[]){
int x = 30;
int y = 10;

if( x == 30 ){
if( y == 10 ){
System.out.print("X = 30 and Y = 10");
}
}
}
}

以上代碼編譯運行結果如下:


X = 30 and Y = 10



switch 語句


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


語法


switch 語法格式如下:


switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//你可以有任意數量的case語句
default : //可選
//語句
}

switch 語句有如下規則:



  • switch 語句中的變量類型可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支持字符串類型瞭,同時 case 標簽必須為字符串常量或字面量。

  • switch 語句可以擁有多個 case 語句。每個 case 後面跟一個要比較的值和冒號。

  • case 語句中的值的數據類型必須與變量的數據類型相同,而且隻能是常量或者字面常量。

  • 當變量的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現才會跳出 switch 語句。

  • 當遇到 break 語句時,switch 語句終止。程序跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程序會繼續執行下一條 case 語句,直到出現 break 語句。

  • switch 語句可以包含一個 default 分支,該分支必須是 switch 語句的最後一個分支。default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。


實例 


public class Test {
public static void main(String args[]){
//char grade = args[0].charAt(0);
char grade = 'C';

switch(grade)
{
case 'A' :
System.out.println("優秀");
break;
case 'B' :
case 'C' :
System.out.println("良好");
break;
case 'D' :
System.out.println("及格");
case 'F' :
System.out.println("你需要再努力努力");
break;
default :
System.out.println("未知等級");
}
System.out.println("你的等級是 " + grade);
}
}

以上代碼編譯運行結果如下:

良好
你的等級是

需要註意的是:


switch的case中,如果沒有瞭break這個關鍵字 ,語句會繼續往下執行,直到編譯器找到break關鍵字為止,哪怕是default也會繼續執行到裡面去。

0 個評論

要回覆文章請先登錄註冊