黑马程序员技术交流社区
标题:
求教一个简单的小问题
[打印本页]
作者:
垂天云
时间:
2013-8-27 10:57
标题:
求教一个简单的小问题
本帖最后由 垂天云 于 2013-8-27 11:49 编辑
毕老师的练习题:
第五题
boolean b = true;
if(b=false) //如果写成if(b=false)有结果吗?如果有,结果是?
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
//b
if(b=false)
//c
我觉得是哪里写错了···谁那有正确的题目啊?
作者:
范龙波
时间:
2013-8-27 11:11
这段程序的打印结果为c
刚才就你说的这个问题做了下测试 :
得出以下结论:
判断条件条件如果写表达式,要看赋值类型
如果为boolean型 赋什么 值返回什么 , 如果引用类型编译不通过
作者:
BCJ
时间:
2013-8-27 11:29
if语句 括号里不是放条件与表达式吗?
if(b=false) ???
等号是双等吧
作者:
code_geass
时间:
2013-8-27 11:38
if括号里的为值为真才运行下面的语句。也就是说 (b==xx) 这个整体为真就运行
作者:
张聪珉
时间:
2013-8-27 11:38
if语句是判断语句,后面跟的是结果是boolean,你的语句里是falsef赋值给了b,结果就是false,这样做没有意义,因为你赋值假了,f语句后面的内容怎么都执行不到,还有一种是if(b==false),这里是的结果是通过==号判断的结果再由if语句根据结果判断是否执行后面的语句,显然也为假,你的这个语句说白了,就是没有实际意义的语句。
作者:
binghaiwang
时间:
2013-8-27 11:50
boolean b = true;
//下边这个写法就是有问题的,=号代表赋值运算,因此这里是不会返回真或假的,只是将b的值改变了
if(b=false) //如果写成if(b=false)有结果吗?如果有,结果是?
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
复制代码
没有写明题目的具体需求,不好判断是否代码有问题,我理解楼主可能是要得出b结果?
如果是,那么只要将=号变为==作为一个比较运算就可以了。
作者:
垂天云
时间:
2013-8-27 11:53
谢谢各位!明白了··
作者:
代文娟
时间:
2013-8-27 12:20
有结果呀,你那if里边应该写成“==”,刚开始b=true,当你判断时,
作者:
代文娟
时间:
2013-8-27 12:23
有结果呀,你那if里边应该写成“==”,刚开始b=true,当判断第一个if时,不满足条件,他就会运行else语句在判断if‘里是b为真,应该输出的是b
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2