Boolean flag = false;
if (flag = true)
{
System.out.println("true");
}
else
{
System.out.println("false");
}
答案:
The text“true” is displayed.
详解:
public static void main(String[] args){
Boolean flag=false;//先调用Boolean.valueOf(boolean b)返回false对应的Boolean对象Boolean.FALSE,然后赋值给flag,flag值为Boolean.FALSE
/* 先赋值,遇到if条件表达式自动拆箱
* 1. 先调用Boolean.valueOf(boolean b)返回true对应的Boolean对象Boolean.TRUE,然后赋值给flag,flag值为Boolean.TRUE
* 2. 调用booleanValue()返回flag值对应的基础数据类型值true
* 3. 结果输出true
*/
if (flag=true){
System.out.println("true");
}else{
System.out.println("false");
}
}
Boolean修饰的变量为包装类型,初始化值为false,进行赋值时会调用Boolean.valueOf(boolean b)方法自动拆箱为基本数据类型,因此赋值后flag值为true,输出文本true。
如果使用==比较,则输出文本false。
if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值
boolean 类型的变量可以用if()进行判断,但是如果是基本的数据类型 if(int/float/double=值)是不被允许的
if(flag=true){
}
中,只是一个赋值语句=======》隐含条件为
if((flag=true)==true){
}