黑马程序员技术交流社区

标题: 这道题的怎么是输出c字符,帮忙解释一下详细的,以前做过,现在忘记怎么做了。 [打印本页]

作者: bitwdh    时间: 2016-6-28 10:04
标题: 这道题的怎么是输出c字符,帮忙解释一下详细的,以前做过,现在忘记怎么做了。
public class Test5 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                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");
                }

        }

}
这道题的怎么是输出c字符,帮忙解释一下详细的,以前做过,现在忘记怎么做了。。
作者: Ake丶    时间: 2016-6-28 10:43
b=false,那么b被赋值false,第一个if不执行,第二个else if不执行,第三个else if执行。
作者: 小雨皮    时间: 2016-6-28 13:58
第一个if ,b就变了
作者: bitwdh    时间: 2016-6-29 12:23
小雨皮 发表于 2016-6-28 13:58
第一个if ,b就变了

我有什么不懂得问题,在论坛的你们都会为我解决,谢谢你们!~!!

作者: bitwdh    时间: 2016-6-29 12:25
Ake丶 发表于 2016-6-28 10:43
b=false,那么b被赋值false,第一个if不执行,第二个else if不执行,第三个else if执行。 ...

谢谢你,解析的很好,
作者: sgnx    时间: 2016-6-29 22:07
b=false是赋值运算
作者: 迅雷    时间: 2016-6-30 00:21
if (b = false) 是一个赋值运算,将false赋值给b,else if(b),b为false,执行语句不执行,else if(!b),!bS结果是true,执行语句输出c
      
作者: bitwdh    时间: 2016-6-30 10:59
迅雷 发表于 2016-6-30 00:21
if (b = false) 是一个赋值运算,将false赋值给b,else if(b),b为false,执行语句不执行,else if(!b),!bS结果 ...

明白了,谢谢你的热心解答!!!
作者: bitwdh    时间: 2016-6-30 11:07
sgnx 发表于 2016-6-29 22:07
b=false是赋值运算

谢谢,我明白了。。。




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