if条件语句是使用布尔表达式或布尔值作为分支条件来进行分支控制。
1.也就是说当表达式值不为布尔值时编译报错:如下
if(a=1){
System.out.println("a");
}
原因为表达式a=1是将a赋值为1,是个整形量,不是布尔值,故而程序报错。
2.修改程序为:
int a=1;
if(a==1){
System.out.println("a");
}
程序顺利通过编译,输出结果为:
由于表达式a==1的值为true,是个布尔型数值,所以if条件语句识别出这个值,执行了true时的分支选项。
3.那么当赋值为布尔值赋值表达式的情况呢?
boolean b=false;
if(b=false){
System.out.println("false");
}else{
System.out.println("true");
}
输出结果如下:
也就是说if条件语句执行了false的分支选项,输出了字符串true。试着按着上述方法分析,表达式b=false为赋值语句,值为false,故而执行了false的选择项。那么现在做出如下修改:
boolean b=false;
if(b=true){
System.out.println("false");
}else{
System.out.println("true");
}
执行结果应当是false。实际输出结果为:
实质上是直接送入一个布尔值给判断条件。
4.如果表达式为比较运算符==连接,如下:
boolean b=false;
if(b==false){
System.out.println("false");
}else{
System.out.println("true");
}
那么如同之前整数的关系运算符一样,这里表达式的值应当为true,输出结果为false。实际所得的结果如下:
综上所述,if条件语句的判断条件实质上就是一个布尔值,这个布尔值可以通过关系运算符来表达(2,4),也可以直接的给出这个布尔值(3)。但是无论哪种方法,都要确保表达式的值为布尔值,否则编译会报错(1)。