if-else语句根据判定条件的真假来执行两种操作中的一种, ?的格式为:
if(boolean-expression)
statement1;
[else
statement2;]
1.布尔表达式boolean-expression是任意一个返回布尔型数据的 达式(这比C、C++的限制 要严格)。
2.每个单一的语句后都必须有分号。
3.语句statement1,statement2可以为复合语句,这时要用大括号{} ?起。建议对单一的语句 也用大括号括起,这样程序的可读性强,而且有利于程序的扩充( 可以在其中填加新的语句 )。{}外面不加分号。
4.else子句是任选的。
5.若布尔表达式的值为true,则程序执行statement1,否则执行sta tement2。
6.if-else语句的一种特殊形式为:
if(expression1){
statement1
}else if(expression2){
statement2
}……
}else if(expressionM){
statementM
}else{
statementN
}
else子句不能单独作为语句使用,它必须和if配对使用。else总是与离它最近的if配对 。可以通过使用大括号{}来改变配对关系。
7.举例:
例4.1比较两个数的大小,并按从小到大的次序输出。
public class CompareTwo{
public static void main(Stringargs[]){
double d1=23.4;
double d2=35.1;
if(d2>=d1)
System.out.println(d2+">="+d1);
else
System.out.println(d1+">="+d2);
} } 运行结果为:
C:\\>java CompareTwo
35.1>=23.4
例4.2判断某一年是否为闰年。
闰年的条件是符合下面二者之一:①能被4整除,但不能被100 整除;②能被4整除,又能被 100整除。
public class LeapYear{
public static void main(String args[]){
int year=1989;//method1
if((year%4==0&&year0!=0)||(year@0==0))
System.out.println(year+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
year=2000;//method2
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+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
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.");
}
}
运行结果为
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进行匹配来实现闰年的 ?断。大家可以根据程序来 对比这三种方法,体会其中的联系和区别,在不同的场合选用适 ?的方法。