4.1分支語句
分支語句提供了一種控制機制,使得程序的執(zhí)行可以跳過某些語句不執(zhí)行,而轉(zhuǎn)去執(zhí)行特定的語句 。
4.1.1條件語句if-else.
if-else語句根據(jù)判定條件的真假來執(zhí)行兩種操作中的一種, 它的格式為:
if(boolean-expression)
statement1;
else
statement2;
1.布爾表達式 boolean-expression是任意一個返回布爾型數(shù)據(jù)的表達式 (這比C、 C++的限制要嚴格 )。
2.每個單一的語句后都必須有分號 。
3.語句statement1,statement2可 以為復(fù)合語句 ,這時要用大括號 {} 括起。 建議對單一的語句 也用大括號括起,這樣程序的可讀性強 ,而且有利于程序的擴充 (可以在其中填加新的語句)。 {}外面不加分號 。
4.else子句是任選的 。
5.若布爾表達式的值為true,則程序執(zhí)行statement1,否則執(zhí)行 statement2。
6.if-else語句的一種特殊形式為 :
if(expression1)
{
statement1
}
else if (expression2)
{
statement2
}……
}
else if (expressionM)
{
statementM
}
Else
{
statementN
}
else子句不能單獨作為語句使用,它必須和if配對使用。else總是與離它最近的if配對??梢酝ㄟ^使用大括號{}來改變配對關(guān)系。
7.舉例:
例4.1 比較兩個數(shù)的大小,并按從小到大的次序輸出。
public class CompareTwo
{
public static void main( String args[] )
{
double d1=23.4;
double d2=35.1;
if(d2>=d1)
System.out.println(d2+" >= "+d1);
else
System.out.println(d1+" >= "+d2);
}
}
運行結(jié)果為:
C:\>java CompareTwo
35.1 >= 23.4
例 4.2 判斷某一年是否為閏年。
閏年的條件是符合下面二者之一 :①能被4整除,但不能被10 0整除;②能被4整除,又能被 100整除 。
public class LeapYear
{
public static void main( String args[] )
{
int year=1989; //method 1
if( (year%4==0 && year0!=0) || (year@0==0) )
System.out.println(year+" is a leap year.");
else
System.out.println(year+" is not a leap year.");
year=2000; //method 2
boolean leap;
if( year%4!=0 )
leap=false;
else if( year0!=0 )
leap=true;
else if( year@0!=0 )
leap=false;
else
leap=true;
if( leap==true )
System.out.println(year+" is a leap year.");
else
System.out.println(year+" is not a leap year.");
year=2050; //method3
if( year%4==0){
if( year0==0 ){
if( year@0==0)
leap=true;
else
leap=false;
}else
leap=false;
}else
leap=false;
if( leap==true )
System.out.println(year+" is a leap year.");
else
System.out.println(year+" is not a leap year.");
}
}
運行結(jié)果為
C:\>java LeapYear
1989 is not a leap year.
2000 is a leap year.
2050 is not a leap year.
該例中方法 1用一個邏輯表達式包含了所有的閏年條件,方法2使用了if-else語句的 特 殊 形式,方法3則通過使用大括號{}對if-else進行匹配來實現(xiàn)閏年的判斷。大家可以根據(jù)程序來對比這三種方法,體會其中的聯(lián)系和區(qū)別,在不同的場合選用適合的方法 。