猿问

JAVA语言中=和==的区别

if(sex="女")为什么就不对而if(sex=="女")就对

半盏香茗
浏览 2760回答 11
11回答

堂堂堂堂糖糖糖童鞋

sex="女"是仅仅是赋值操作,而sex=="女"则是比较它们的值是否相等,并且有返回值true/false!就想上面的那样if(sex=="女")是条件判断语句,其条件为true(向下继续执行大括号"{}"里面的语句)/false(执行else部分,或者执行未执行完的其他语句)!

古__月

其实这两个都是错误的,sex="女"表示的是将字符串赋值给sex这个变量,得到的不是一个布尔值,所以就不能使用if来实现判断,sex=="女"  表示的是内存地址的比较,这里得到的应该是一个false的值,所以使用If可以使用,但是说到底是没有实现判断内容的,如果你想要看一个内容的比较,那么需要使用equals函数,如:if(sex.equals("女")){              }此时才是判断sex这个变量中的内容是不是"女"

cynthiaty

sex="女"只是一条赋值语句;sex=="女"才是条件表达式呀

fortunatekiss

=为赋值  ==为判断

HENG_Gecco

一个比值,一个比址

erutdioup8556

=是赋值 == 是判断 

erutdioup8556

“=”是赋值的意思,“==”就是等于的意思

TheBigBangTheory

= 是赋值操作==  是比较操作

shanghai_kunkka

其他的都说了,我补充一点。‘==’比较两个字符串只有在地址相同的情况下才会返回true。String str = "abc"; String anotherStr = str; String newStr = "abc"; if(str==anotherStr){     // 这时候才会返回true } if(str==newStr){ }else{     // 这个判断的结果是false,虽然字符串的内容一样,但是在内存的地址是不同的。 }

魔法师李维

这个问题在所有语言中基本都是一致的 = 表示赋值运算,作为运算式则返回值为=号右边的值,比如(b=8)*2=16;==表示一种逻辑判断操作,与大于,小于相似,用户判断 ←==→ 两侧的值是否相同 返回结果是true或者false;这里要注意,如果这么写if(sex=true)是对的,.. 其他都是错的,因为java是强类型的语言,
随时随地看视频慕课网APP

相关分类

Java
我要回答