2010年6月21日 星期一

Java 基本流程控制 - If 敘述 #1



在撰寫程式中,我們經常會需要使用到流程控制,流程控制能幫助我們掌控整個程式的執行方式,同時也讓程式更加的精簡有力。Java 的流程控制主要由判斷控制與環循控制所組成,接下來就讓我們細詳的了解這些流程控制所具備的功能與使用方式。


※ If 敘述
if 條件式的語法為:
if(條件){
處理程序1
}
else{
處理程序2
}


在if 語法中條件必須為boolean 值,一點條件式中的boolean 值為true(真)則執行處理程序1,若為false(假),則執行處理程序2。以下為一簡單的範例程式:


public class IF {

public static void main(String args[]) {

int a = 5;

if (a <>

System.out.println("a 小於 10");

}

else{

System.out.println("a 大於 或等於 10");

}

}

//執行結果為: "a 小於 10"

}



If 條件控制可與先前介紹的關係運算子與邏輯運算子結合使用,如此一來便可以結合許多的條件判斷成一個更復雜的if 條件控制式。以下範例為一個判斷學生分數標準級等的程式。


public class IF2 {

public static void main(String args[]){

int score=85;

if(score>=95)

System.out.println("你的分數級等為:A+");

if(score>=90 & score<95)

System.out.println("你的分數級等為:A");

if(score>=85 & score<90)

System.out.println("你的分數級等為:A-");

if(score>=80 & score<85)

System.out.println("你的分數級等為:B");

if(score>=75 & score<80)

System.out.println("你的分數級等為:B+");

if(score>=70 & score<75)

System.out.println("你的分數級等為:B-");

}

//執行結果為: 你的分數級等為:A-

}



在上述的範例中由於if 條件式後若只接單一行的處理程序,所以可以省略{}區塊括號,讓程式看起來更簡潔。此範例程式中的score 變數會經由六道的if 判斷式,比較該分數是介於那一個級等之中,但這樣做法有一個缺點是,若socre 的變數為100 分,那時第一個if 條件判斷式將會成立並印出結果,隨後的五個條件式比較就變成是多餘且沒必要的。我們可以利用if-else-if 巢狀式語法來解決這類的問題,if-else-if 巢狀語法結構為:

if(條件1){
處理程序1
}else if(條件式2){
處理程序2
else{
處理程式3
}


我們將上面的範例程式改用if-else-if 巢狀結構改寫如下:


public class IF3 {

public static void main(String args[]){

int score=85;

if(score>=95)

System.out.println("你的分數級等為:A+");

else if(score>=90 & score<95)

System.out.println("你的分數級等為:A");

else if(score>=85 & score<90)

System.out.println("你的分數級等為:A-");

else if(score>=80 & score<85)

System.out.println("你的分數級等為:B");

else if(score>=75 & score<80)

System.out.println("你的分數級等為:B+");

else if(score>=70 & score<75)

System.out.println("你的分數級等為:B-");

}

//執行結果為: 你的分數級等為:A-

}



此範例將會針對sorce 變數的值進行if 條件式判斷,直到其中一個條件式成立後,即離開此if 條件,並不在對後面的條件式進行判斷,例如此範例程式中,由於else if(score=85& scre<90)的位判斷式成立,因此會在印出結果後便離開此if 控制式,並不在對隨後的條件式進行判斷。


沒有留言:

張貼留言