為什么以下代碼只輸出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
舉報
2020-12-10
我認(rèn)為這要分兩個步驟分析:
比較運(yùn)算符“!=” 是在(i = 5;i != 5)時輸出結(jié)果false。for循環(huán)中最后一步執(zhí)行i++,i++是先賦值在+1在執(zhí)行第四個循環(huán)的時候i的值為5,第五個循環(huán)開始時進(jìn)入比較運(yùn)算符的判斷即(i = 5;i ! = 5)此時輸出結(jié)果為false。
邏輯運(yùn)算符中“&&”有”短路“現(xiàn)象,即如果左邊運(yùn)算結(jié)果為false時,則系統(tǒng)就認(rèn)為已經(jīng)沒有必要執(zhí)行右側(cè)了。此代碼中當(dāng)比較運(yùn)算符“!=”判斷結(jié)果為false時即(i = 5;i != 5)時滿足此條件,則停止運(yùn)行,所以出現(xiàn)四行結(jié)果。
不知分析的是否正確,若哪里有不足或錯誤歡迎指出。