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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

1黑马币
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");
-----------------------------------------------------------------------------
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");
我觉得if(b=false)作用域就是这个括号内就完了啊?求解

66 个回复

倒序浏览
一个是判断b==false   一个是赋值b=false
回复 使用道具 举报
b为基本数据类型,就是内存的一块空间,对其赋值,会改变其内容值,但是要注意其作用域;其次,=是赋值符,而==是比较运算符
回复 使用道具 举报
第一个 ==是判断语句,判断b的值和false是否相等;然后执行下边语句;
第二个是赋值,把false赋值给b,false本事就是布尔型,if属于判断语句,相当于给if返回的是false, 执行不到。
回复 使用道具 举报
=是把等号右边的值赋给等号左边,==是判断等号左右两边是否相等
回复 使用道具 举报
b的作用域是大括号{}中,即局部变量,若这个变量和语句在一个{}里,则b在整个语句里面都会起作用
回复 使用道具 举报
=是赋值运算符,进行赋值,将=右边的值赋给左边变量;==是比较运算符,进行两个值的对比,多用于if(a==b){}判断语句
回复 使用道具 举报
Ak-47 中级黑马 2016-3-24 00:03:12
8#
if(b=false),作用域多大啊,能管几句话啊
回复 使用道具 举报
=是赋值   == 是判断相等
回复 使用道具 举报
=是赋值符号,把左边的值赋值给右边的变量
回复 使用道具 举报
= 是赋值运算符,他的作用是把右边的数据赋值给左边的变量
== 是逻辑(关系)运算符,用来判断左边和右边的数据是否相等,得出的结果是Boolean型,要么true,要么false

你提供的这连个if语句中,
第一个语句 Boolean型变量b首先被初始化为 true,往下执行,先判断 true==false,(判断true是否和false相等,)这明显是false,所以跳过这循环体,走到下面的第一个else if中,因为,b 初始化的时候已经赋值为true所以这个语句成立,然后就执行该语句对应的输出语句,输出结果为b

而第二个语句中,b在第一个if语句中,被赋值,新的值为false,也就是说,此处的if(b=false )实际上就是 if (false),明显不会执行这个循环体,会跳到下面的else if ,第一个else if语句,相当于是,else if(false),因为false,所以也不会执行他对应的循环体,继续往下走,到第二个else if,此处相当于  else if ( ! false ),也就是 else if ( true ),这里是true,就会执行他对应的循环体,所以输出结果为C
回复 使用道具 举报
上面的==是逻辑运算符 把b=ture这个值带进来 就是 if(true==false) 结果是false所以条件不满足 跳过
而下面的= 是赋值运算符 虽然先前定义了b=true 但(b=false)又把b的值用false 把原先的true给覆盖了。虽然条件不满足 但已经改变了b的初始化值 读后边的判断时 其实就是用b=false了
回复 使用道具 举报
278008379 来自手机 中级黑马 2016-3-24 12:08:40
13#
赋值与比较的区别,你是真不会还是假不会?
回复 使用道具 举报
if(里面只要是 false 或者 true)就可以    b =  false  其实就是false
回复 使用道具 举报
一个判断,一个赋值
回复 使用道具 举报
一个是比较运算符,一个是赋值运算符。比较运算符的结果是false或者true,赋值运算符=是将左边的值赋给右边。
回复 使用道具 举报
=是赋值运算符,用来赋值的;==是比较运算符,是用来比较左右两边的数是否相等;以后还会用到个equals是比较两个String型变量里的美容是不是一样的。亲几天我就被==和equals卡住了
回复 使用道具 举报
==是判断    =是赋值
回复 使用道具 举报
Lee.Yongsong 来自手机 高级黑马 2016-3-24 22:12:54
19#
一个是判断,一个是附值,表达的意思不同!
回复 使用道具 举报
b==false是进行判断   b=false是将false赋值给b
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马