位置:首頁 > Java技術 > Java基礎教程 > Java決策製定

Java決策製定

有兩種類型的決策在Java中的語句,它們分彆是:

  • if 語句

  • switch 語句

if 語句:

if語句由一個布爾表達式後跟一個或多個語句。

語法:

if語句的語法是:

if(Boolean_expression)
{
   //Statements will execute if the Boolean expression is true
}

如果布爾表達式的值為 true,那麼代碼裡麵的塊if語句將被執行。如果不是第一套代碼的if語句(後右大括號)結束後,將被執行。

例子:

public class Test {

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

      if( x < 20 ){
         System.out.print("This is if statement");
      }
   }
}

這將產生以下結果:

This is if statement

if...else 語句:

if 語句後麵可以跟一個可選的 else 語句,語句執行時的布爾表達式為 false。

語法:

 if...else 的語法是:

if(Boolean_expression){
   //Executes when the Boolean expression is true
}else{
   //Executes when the Boolean expression is false
}

實例:

public class Test {

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

      if( x < 20 ){
         System.out.print("This is if statement");
      }else{
         System.out.print("This is else statement");
      }
   }
}

這將產生以下結果:

This is else statement

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

if後麵可以跟一個可選的 else if...else語句,這是一個使用單一的,測試各種條件下非常有用 if... else if語句。 

當使用 if , else if , else 語句時有幾點要牢記。

  • if 可以有0個或冇有 else 且它必須在else if 的之後。

  • if 可以有0個或多個 else if,但是它們必須在else之前。

  • 一旦 else if 成功, 餘下else if 不會被測試執行。

語法:

if...else 的語法是:

if(Boolean_expression 1){
   //Executes when the Boolean expression 1 is true
}else if(Boolean_expression 2){
   //Executes when the Boolean expression 2 is true
}else if(Boolean_expression 3){
   //Executes when the Boolean expression 3 is true
}else {
   //Executes when the none of the above condition is 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("This is else statement");
      }
   }
}

這將產生以下結果:

Value of X is 30

嵌套 if...else 語句:

它始終是合法的嵌套if-else語句,這意味著你可以使用一個if或else if語句在另一個if或else if語句。

語法:

嵌套 if...else 的語法如下:

if(Boolean_expression 1){
   //Executes when the Boolean expression 1 is true
   if(Boolean_expression 2){
      //Executes when the Boolean expression 2 is true
   }
}

可以嵌套 else if...else 在類似的方式,因為我們有嵌套的if語句。

實例:

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 語句允許一個變量來對值的列表相等進行測試。每個值被稱為一個例子,並且在選擇測試該變量被檢查的每種情況。

語法:

增強的 for循環的語法是:

switch(expression){
    case value :
       //Statements
       break; //optional
    case value :
       //Statements
       break; //optional
    //You can have any number of case statements.
    default : //Optional
       //Statements
}

以下規則適用於switch語句:

  • 在switch語句中使用的變量隻能是一個字節,short,int和或char。

  • 可以switch 有一個任何數量的case語句。每個案例後麵進行比較的值和一個冒號。

  • 對於 case 的值必須是相同的數據類型作為開關變量,它必須是一個常量或文字。

  • 當被打開了變量等於的情況下,下列那 case 語句將執行,直到 break 語句為止。

  • 當達到一個break語句,switch 終止,並且控製流程跳轉到下一行下麵 switch語句。

  • 不是每一個 case 需要包含break。如果冇有出現break,控製流將貫穿到後麵的 case 直到 break 為止。

  • switch語句可以有一個可選默認 case ,它必須出現在 switch 的結束。缺省情況下,可用於執行任務時,冇有case是true。冇有break 是必須的,使用 default 。

例子:

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("Excellent!"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("Well done");
            break;
         case 'D' :
            System.out.println("You passed");
         case 'F' :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

編譯並運行上麵使用各種命令行參數的程序。這將產生以下結果:

$ java Test
Well done
Your grade is a C
$

下一步?

下一章討論了有關Number類(在java.lang包中)和Java語言及其子類。

我們將尋找到一些使用這些類的實例化,而不是原始數據類型,以及類如格式化,需要了解與Number 的數學函數的情況。