if条件语句判断条件辨析

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)。

猜你喜欢

转载自blog.csdn.net/wsd19940825/article/details/85331902