黑马程序员技术交流社区
标题: if(),括号中的表达式问题 [打印本页]
作者: 赵崇友 时间: 2013-3-30 17:18
标题: if(),括号中的表达式问题
本帖最后由 赵崇友 于 2013-3-30 21:48 编辑
class ifDemo
{
public static void main(String[]args)
{
boolean b = true;
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");
}
}
大家帮忙看看运行结果,解释下原因最好!
作者: _王涛 时间: 2013-3-30 17:30
这个程序的结果是c 分析如下:
if(b=false);程序到这来时b被赋值为false,由于if条件是false了所以不走if体中的代码,
直接向下运行,到了else if(!b);时 !false==true;此时运行结果:c
作者: 李尧 时间: 2013-3-30 17:34
if()括号里只要是boolean就可以.b就是一个boolean型的变量
b=false 是在对b赋值.b=false,!b就是true了.那么只有下面这个满足true
else if(!b)
System.out.println("c");
结果是c咯,
作者: 于腾飛 时间: 2013-3-30 17:38
class ifDemo
{
public static void main(String[]args)
{
boolean b = true;
if(b=false) //B被赋为false 所以不打印
System.out.println("a");
else if(b)// 此时 b 是false 所以也不打印
System.out.println("b");
else if(!b)// 此时!b为true,打印 c
System.out.println("c");
else
System.out.println("d");
}
}
作者: 胡帅冰 时间: 2013-3-30 17:47
- class luntanTest
- {
- public static void main(String[]args)
- {
- boolean b = true;
- if(b=false) //这个是先进行b=false的赋值 然后再进行if的判断,判断不通过,接着判断。
- System.out.println("a");
- else if(b)//此时b为假,所以判断不通过
- System.out.println("b");
- else if(!b)// !b为真,执行此条件下的语句 输出c
- System.out.println("c");
- else
- System.out.println("d");
- }
- }
复制代码 楼上各位说的都正确,我跟他们说的都是一样的,再加以描述,希望你能更明白。
作者: 高新星 时间: 2013-3-30 17:48
if(布尔表达式){},所以在()中为布尔值,不是true就是false;若为true则执行if下{}中的语句,若为false则不执行;
所以根据这个- public class Demo7 {
- public static void main(String[]args)
- {
- boolean b = true;
- if(b=false) //b==false布尔值为false
- System.out.println("a");//不执行
- else if(b)//b==false
- System.out.println("b");//不执行
- else if(!b)//!b==true,布尔值为真
- System.out.println("c");//执行 if语句结束
- else//不执行
- System.out.println("d");
- }
- }
复制代码 所以结果为:c
作者: 刘胜寒 时间: 2013-3-30 18:17
没赶上!不然还能捞点技术分
作者: guobin_lu 时间: 2013-3-30 18:41
我都发了好多 技术问题 都没捞技术分
作者: 李晓峰 时间: 2013-3-30 18:42
class ifDemo
{
public static void main(String[]args)
{
boolean b = true;//布尔型变量只有两个值:false,ture
if(b=false)//"="是一个赋值运算符,因此b被重新赋值为false,条件不满足,不执行打印a的语句。继续向下判断。
System.out.println("a");
else if(b)//b=false,条件不满足,不执行打印b的语句。继续向下判断。
System.out.println("b");
else if(!b)//!b=true,条件满足,执行打印c的语句。由于if语句有一个条件满即可。因此最终结果为c
System.out.println("c");
else
System.out.println("d");
}
}
作者: 高新星 时间: 2013-3-30 19:00
guobin_lu 发表于 2013-3-30 18:41 
我都发了好多 技术问题 都没捞技术分
坚持就是胜利!面包会有的,技术分也会有的
一起加油
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |