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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Ak-47   /  2016-3-23 23:06  /  15359 人查看  /  66 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

第一个就是比较两个数是否相等,不用多说了.
但是第二个是把false赋值给b了,之后判断b是真还是假,
和因为boolean b=true;这个声明是在和if,else同一个方法中的,所以他的生命周期就是是这个函数的生命周期
回复 使用道具 举报
赋值;比较;
回复 使用道具 举报
=是 赋值运算符  将false赋值给b   ==是比较运算符  判断b和false是否相等 相等返回true  不等为false
回复 使用道具 举报
=是给变量赋值,==是两边进行值的比较如果是一样的就等于true否则就是false
回复 使用道具 举报
=是赋值操作   ==是判断值是否相等并且检查类型是否相同
回复 使用道具 举报
=是赋值运算符,就是把=右边的赋值给=左边,
==是比较运算符,就是判断两边是否相等,运算结果只有真于假
回复 使用道具 举报
楼主,你好,
根据您提出的问题,本人为您亲自调试代码,以便让您更好地理解,你的代码可以写成以下形式,
public class Person
{

        public static void main(String args[])
        {
               
                                boolean b1=true;

                            if(b1==false)
                                    System.out.println("a");
                            else if(b1)
                                    System.out.println("b");
                            else if(!b1)
                                    System.out.println("c");
                            else
                                    System.out.println("d");
                        //-----------------------------------------------------------------------------
                        boolean b2 = true;

                            if(b2=false)
                                    System.out.println("a");
                            else if(b2)
                                    System.out.println("b");
                            else if(!b2)
                                    System.out.println("c");
                            else
                                    System.out.println("d");
                        //我觉得if(b=false)作用域就是这个括号内就完了啊?求解
                        //}

                        }
}
上面的代码,只是把您原来声明的两个变量b区分了一下,一个是b1,一个是b2,这样你理解起来就不会混乱。然后,我们来看输出的结果:
程序的输出结果是:
b
c
为什么是这样的结果呢?
很简单,首先我们来理解两个符号的含义:
"=="以及"="
"=="两个等于号组成的符号,在程序的作用是起判断的作用,即判断==号左右两边的值是否相等。如果相等,则返回1,如果不相等,则返回0;
"="一个等于号,在程序的作用是起赋值的作用,即将等号右边的值赋给左边。
弄清了这两个概念之后,我们来分析程序就不难了。
首先,我们声明了一个布尔型变量b1的值等于true.
if 后面括号的内容是判断变量b1是否等于false.很明显,我们在上一行代码已经将b1初始化为true 。所以if括号里面的内容不成立。然后就往下执行else if语句。因为b1的值不变,仍然是true,所以这个else if (b)括号中的内容为真,是成立的,所以执行紧跟着的一句代码,所以就打印字符串b了。
然后,我们来分析下一段代码:同样,一开始初始化一个布尔型变量b2=  true.
刚才已经说过,一个等号"="代表赋值运算,是将右边的值赋给左边,所以这时变量b2的值被改变了。b2的值由之前的true变成了false.所以if语句括号的内容不成立,然后继续判断下面esle if 括号中的内容是否为真,很明显,也不成立。再判断下一个else if (!b)这一句代码括号中的内容是否为真。这里,聪明的楼主会发现,它用了取反运算符!,即由原来的false变成了true.所以,会打印字符串c。
说了很多了,希望楼主能看明白。有点长,只为楼主好理解。纯手打的,满意请采纳,谢谢!
回复 使用道具 举报
1234
您需要登录后才可以回帖 登录 | 加入黑马