11 回答

TA貢獻(xiàn)101條經(jīng)驗(yàn) 獲得超58個(gè)贊
sex="女"是僅僅是賦值操作,而sex=="女"則是比較它們的值是否相等,并且有返回值true/false!就想上面的那樣
if(sex=="女")是條件判斷語(yǔ)句,其條件為true(向下繼續(xù)執(zhí)行大括號(hào)"{}"里面的語(yǔ)句)/false(執(zhí)行else部分,或者執(zhí)行未執(zhí)行完的其他語(yǔ)句)!

TA貢獻(xiàn)44條經(jīng)驗(yàn) 獲得超22個(gè)贊
其實(shí)這兩個(gè)都是錯(cuò)誤的,sex="女"表示的是將字符串賦值給sex這個(gè)變量,得到的不是一個(gè)布爾值,所以就不能使用if來(lái)實(shí)現(xiàn)判斷,
sex=="女" ?表示的是內(nèi)存地址的比較,這里得到的應(yīng)該是一個(gè)false的值,所以使用If可以使用,但是說(shuō)到底是沒(méi)有實(shí)現(xiàn)判斷內(nèi)容的,如果你想要看一個(gè)內(nèi)容的比較,那么需要使用equals函數(shù),如:
if(sex.equals("女")){ ? ? ? ? ? ? ?}
此時(shí)才是判斷sex這個(gè)變量中的內(nèi)容是不是"女"

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
其他的都說(shuō)了,我補(bǔ)充一點(diǎn)?!?=’比較兩個(gè)字符串只有在地址相同的情況下才會(huì)返回true。
String?str?=?"abc"; String?anotherStr?=?str; String?newStr?=?"abc"; if(str==anotherStr){ ????//?這時(shí)候才會(huì)返回true } if(str==newStr){ }else{ ????//?這個(gè)判斷的結(jié)果是false,雖然字符串的內(nèi)容一樣,但是在內(nèi)存的地址是不同的。 }

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
這個(gè)問(wèn)題在所有語(yǔ)言中基本都是一致的 = 表示賦值運(yùn)算,作為運(yùn)算式則返回值為=號(hào)右邊的值,比如(b=8)*2=16;
==表示一種邏輯判斷操作,與大于,小于相似,用戶判斷 ←==→ 兩側(cè)的值是否相同 返回結(jié)果是true或者false;
這里要注意,如果這么寫if(sex=true)是對(duì)的,.. 其他都是錯(cuò)的,因?yàn)閖ava是強(qiáng)類型的語(yǔ)言,

TA貢獻(xiàn)12條經(jīng)驗(yàn) 獲得超9個(gè)贊
“=”是比較符號(hào),而“==”是賦值符號(hào), sex=“女”是比較sex的值和“女”是否一致,而sex==“女”的意思是將“女”這個(gè)值賦給sex這個(gè)變量。
添加回答
舉報(bào)