為什么以下代碼只輸出4行"我看不見我看不見我看不見",輸出不應(yīng)該是8行代碼嗎?
public?class?Foryunsuan?{ ????public?static?void?main(String[]?args)?{ ????????int?i?=?1; ????????for(;i!=5&&i<10;){ ????????????System.out.println("看不見看不見看不見"); ????????????i++; ????????} ????} }
public?class?Foryunsuan?{ ????public?static?void?main(String[]?args)?{ ????????int?i?=?1; ????????for(;i!=5&&i<10;){ ????????????System.out.println("看不見看不見看不見"); ????????????i++; ????????} ????} }
2020-12-10
舉報(bào)
2020-12-10
我認(rèn)為這要分兩個(gè)步驟分析:
比較運(yùn)算符“!=” 是在(i = 5;i != 5)時(shí)輸出結(jié)果false。for循環(huán)中最后一步執(zhí)行i++,i++是先賦值在+1在執(zhí)行第四個(gè)循環(huán)的時(shí)候i的值為5,第五個(gè)循環(huán)開始時(shí)進(jìn)入比較運(yùn)算符的判斷即(i = 5;i ! = 5)此時(shí)輸出結(jié)果為false。
邏輯運(yùn)算符中“&&”有”短路“現(xiàn)象,即如果左邊運(yùn)算結(jié)果為false時(shí),則系統(tǒng)就認(rèn)為已經(jīng)沒有必要執(zhí)行右側(cè)了。此代碼中當(dāng)比較運(yùn)算符“!=”判斷結(jié)果為false時(shí)即(i = 5;i != 5)時(shí)滿足此條件,則停止運(yùn)行,所以出現(xiàn)四行結(jié)果。
不知分析的是否正確,若哪里有不足或錯(cuò)誤歡迎指出。