黑马程序员技术交流社区
标题:
if (m = false) ,if(表达式),但是m=false是赋值表达式,为什么程序还可以运行;
[打印本页]
作者:
泪雨星空
时间:
2016-4-14 19:38
标题:
if (m = false) ,if(表达式),但是m=false是赋值表达式,为什么程序还可以运行;
if (表达式)
{
语句;
}
其中表达式是用布尔类型表示,表达式为true,表达式满足时,执行语句,但是下面这条语句可以运行之后的结果是false,为什么程序编译和运行的时候都没有问题;
public class Test {
public static void main(String[] args) {
boolean m = true;
if (m = false) {
System.out.println("true");
} else {
System.out.println("false");
}
}
}
作者:
west2179
时间:
2016-4-14 19:40
因为m = false
当做false在使用
作者:
zw2008
时间:
2016-4-14 19:47
if (m = false) 这句话执行后,m的值变为false;所以执行
else {
System.out.println("false");
}
这个语句
作者:
董改名
时间:
2016-4-14 20:57
m = false;是赋值语句,不是判断语句
作者:
hm837694030
时间:
2016-4-14 21:46
本帖最后由 hm837694030 于 2016-4-14 21:49 编辑
if (m = false) 这句有问题,if(关系表达式),“m=false”是赋值语句,即执行else语句。
正确格式为:if (m == false) “=”是赋值运算符
“==”是关系运算符
作者:
Yoyoqiu
时间:
2016-4-14 21:58
用 m == false 才会判断true还是false
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2