11 回答
堂堂堂堂糖糖糖童鞋
TA贡献101条经验 获得超58个赞
sex="女"是仅仅是赋值操作,而sex=="女"则是比较它们的值是否相等,并且有返回值true/false!就想上面的那样
if(sex=="女")是条件判断语句,其条件为true(向下继续执行大括号"{}"里面的语句)/false(执行else部分,或者执行未执行完的其他语句)!
已采纳
古__月
TA贡献44条经验 获得超22个赞
其实这两个都是错误的,sex="女"表示的是将字符串赋值给sex这个变量,得到的不是一个布尔值,所以就不能使用if来实现判断,
sex=="女" 表示的是内存地址的比较,这里得到的应该是一个false的值,所以使用If可以使用,但是说到底是没有实现判断内容的,如果你想要看一个内容的比较,那么需要使用equals函数,如:
if(sex.equals("女")){ }
此时才是判断sex这个变量中的内容是不是"女"
shanghai_kunkka
TA贡献2条经验 获得超0个赞
其他的都说了,我补充一点。‘==’比较两个字符串只有在地址相同的情况下才会返回true。
String str = "abc"; String anotherStr = str; String newStr = "abc"; if(str==anotherStr){ // 这时候才会返回true } if(str==newStr){ }else{ // 这个判断的结果是false,虽然字符串的内容一样,但是在内存的地址是不同的。 }
魔法师李维
TA贡献2条经验 获得超0个赞
这个问题在所有语言中基本都是一致的 = 表示赋值运算,作为运算式则返回值为=号右边的值,比如(b=8)*2=16;
==表示一种逻辑判断操作,与大于,小于相似,用户判断 ←==→ 两侧的值是否相同 返回结果是true或者false;
这里要注意,如果这么写if(sex=true)是对的,.. 其他都是错的,因为java是强类型的语言,
添加回答
举报
0/150
提交
取消