A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 垂天云 高级黑马   /  2013-8-27 10:57  /  1313 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 垂天云 于 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

我觉得是哪里写错了···谁那有正确的题目啊?

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
这段程序的打印结果为c
刚才就你说的这个问题做了下测试 :
得出以下结论:
判断条件条件如果写表达式,要看赋值类型 如果为boolean型 赋什么 值返回什么  , 如果引用类型编译不通过
回复 使用道具 举报
if语句 括号里不是放条件与表达式吗?
   
if(b=false)  ???
  
等号是双等吧
回复 使用道具 举报
if括号里的为值为真才运行下面的语句。也就是说 (b==xx) 这个整体为真就运行
回复 使用道具 举报
if语句是判断语句,后面跟的是结果是boolean,你的语句里是falsef赋值给了b,结果就是false,这样做没有意义,因为你赋值假了,f语句后面的内容怎么都执行不到,还有一种是if(b==false),这里是的结果是通过==号判断的结果再由if语句根据结果判断是否执行后面的语句,显然也为假,你的这个语句说白了,就是没有实际意义的语句。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报 1 0
  1. boolean b = true;
  2.                 //下边这个写法就是有问题的,=号代表赋值运算,因此这里是不会返回真或假的,只是将b的值改变了
  3.                 if(b=false)  //如果写成if(b=false)有结果吗?如果有,结果是?
  4.                 System.out.println("a");
  5.                 else if(b)
  6.                 System.out.println("b");
  7.                 else if(!b)
  8.                 System.out.println("c");
  9.                 else
  10.                 System.out.println("d");
复制代码
没有写明题目的具体需求,不好判断是否代码有问题,我理解楼主可能是要得出b结果?
如果是,那么只要将=号变为==作为一个比较运算就可以了。
回复 使用道具 举报
谢谢各位!明白了··
回复 使用道具 举报
有结果呀,你那if里边应该写成“==”,刚开始b=true,当你判断时,
回复 使用道具 举报
有结果呀,你那if里边应该写成“==”,刚开始b=true,当判断第一个if时,不满足条件,他就会运行else语句在判断if‘里是b为真,应该输出的是b
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马