黑马程序员技术交流社区

标题: java 基础学习 [打印本页]

作者: Honelyboy    时间: 2014-12-10 22:22
标题: java 基础学习
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");
}
面程序执行的结果是?为什么?


作者: 雨过山更翠    时间: 2014-12-10 22:46
#在这里快速回复#第一个if条件中,将false赋值给了b,满足第三个条件,!b为true,打印c
作者: 被风扬起的沙    时间: 2014-12-10 22:54
答案为C,=为赋值,只能为真的时候才能输出。
boolean b=true只是个迷惑项
作者: Honelyboy    时间: 2014-12-10 22:56
雨过山更翠 发表于 2014-12-10 22:46
#在这里快速回复#第一个if条件中,将false赋值给了b,满足第三个条件,!b为true,打印c ...

哦,知道了。谢谢。
作者: 0_TNT_0    时间: 2014-12-10 23:03
答案为 c   无论  变量b 初值 是true还是false  都影响结果。
第一个if ()中的语句是赋值语句  决定了程序的结果  同时也是迷惑项,容易和 ==等于符号混淆
作者: 雨过山更翠    时间: 2014-12-10 23:11
Honelyboy 发表于 2014-12-10 22:56
哦,知道了。谢谢。

客气哦,啦啦啦
作者: Honelyboy    时间: 2014-12-10 23:27
0_TNT_0 发表于 2014-12-10 23:03
答案为 c   无论  变量b 初值 是true还是false  都影响结果。
第一个if ()中的语句是赋值语句  决定了程 ...

知道了。thanks
作者: ben_vs_cong    时间: 2014-12-10 23:37
结果是c,因为if语句那里有赋值运算,所以b=false,所以输出c
作者: ben_vs_cong    时间: 2014-12-10 23:38
呵呵,没有看就回复上去了,原来都明白了,呵呵。不好意思
作者: lidinghai    时间: 2014-12-10 23:49
学习了。
作者: 安卓小蜗牛    时间: 2014-12-11 00:33
输出C啊,b=true,不就!b咯
作者: Honelyboy    时间: 2014-12-11 00:37
安卓小蜗牛 发表于 2014-12-11 00:33
输出C啊,b=true,不就!b咯

知道了。谢谢。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2