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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

D.TF 中级黑马 2016-3-25 00:38:54
21#
我看上面是这样说的。我看了看好像也是这样的
第一个 ==是判断语句,判断b的值和false是否相等;然后执行下边语句;
第二个是赋值,把false赋值给b,false本事就是布尔型,if属于判断语句,相当于给if返回的是false, 执行不到。
主要是=是赋值,而==才是判断语句等于
回复 使用道具 举报
Ak-47 中级黑马 2016-3-25 01:25:26
22#
那个赋值不是也算是局部if()括号里面的局部变量啊,出了大括号怎么还有用啊
回复 使用道具 举报
==是判断两边的是否一样,=是右边给左边赋值
回复 使用道具 举报
首先=和==跟作用域没有关系,你这两段代码分别输出的是b和c,这使你误认为是=和==的作用域差异导致,第一段代码b==false是比较,b初始化为true,所以判断结果为false,只能执行else if(b)的代码,结果为true所以输出b;
第二段代码,将false赋值给b,此时b就是false,当然就不能执行第一条语句,往下执行到else if(b),此时b还是false,第二条语句也不执行,接着执行到else if(!b),此时运算完后b就变成true,当然就执行输出c了。
回复 使用道具 举报

==是比较运算符,=是赋值运算符,比较运算符的结果是false或者true,赋值运算符是将左边的值赋给右边,这两个类型都不一样
回复 使用道具 举报
一个是关系运算符,一个是赋值运算符
==的作用是判断两边是否相等,=的作用是把右边的操作结果赋值给左边
回复 使用道具 举报
b = true;
  if(b=false)
把 b = true;赋值给 if(b=false) .输出的是b=false.所以选择 (!b)
回复 使用道具 举报

b = true;
  if(b=false)
把 b = true;赋值给 if(b=false) .输出的是b=false.所以选择 (!b)
回复 使用道具 举报
Ak-47 中级黑马 2016-3-26 01:38:34
29#
谢谢各位大侠了,收下我的膝盖吧
回复 使用道具 举报
腾龙3158 来自手机 中级黑马 2016-3-26 03:00:05
30#
if语句如果有大括号,那么作用域就是整个大括号以及后面的else 语句;如果没有大括号,那么作用域就是最近的一条语句,并且只能跟一条语句,此时作用域可达到else 语句,否则不能再跟else 语句。
回复 使用道具 举报
=号是赋值运算符 == 是比较运算符
回复 使用道具 举报
b=* 是赋值,会影响b的实际值,b本身作为判断条件
b==*是判断,不会影响b本身,整个词句来充当一个判断条件
回复 使用道具 举报
= 是一个赋值运算符,是用来给变量赋值的
== 是一个比较运算符,是用来判断两边是否相等的,基本类型比较的是值,引用类型比较的是地址值
回复 使用道具 举报
if(b=false)   if(true){  结果是真走这里  执行}  else  { 判断是假 走这里}  依次顺序执行
回复 使用道具 举报
第一个里if(b==false)是指b是否等于false,实际上不是所以a不会输出,然后if(b)成立,因为b是true,所以输出b,

第二个b=false是把右边的false赋值给了b,这时候b的值是false,只有!b成立所以输出c
回复 使用道具 举报
=是赋值,==是比较。b=false就是将false赋予b,if(b==false)的意思是如果b等于false。
回复 使用道具 举报
第二个if(b=false) ,直接个b赋值false,后面当然输出c了,第一个选b
回复 使用道具 举报
naiheqiao168 发表于 2016-3-23 23:52
=是赋值运算符,进行赋值,将=右边的值赋给左边变量;==是比较运算符,进行两个值的对比,多用于if(a==b){}判断 ...

活捉同班同学一枚
回复 使用道具 举报
houxiaoxiong 发表于 2016-3-24 12:51
if(里面只要是 false 或者 true)就可以    b =  false  其实就是false

打印出什么
回复 使用道具 举报
判断和赋值的区别
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马