可以運(yùn)行出結(jié)果,但有什么問(wèn)題嗎?
System.out.println(age>=60?"old":age>30?"中年":age>=18?"青年":"童年"); 這樣也可以出結(jié)果,有什么邏輯錯(cuò)誤吧?對(duì)比 System.out.println(age >= 60 ? "老年" : age >= 40 && age < 60 ? "中年" : 18<= age || age<40 ? "少年" : "童年");
System.out.println(age>=60?"old":age>30?"中年":age>=18?"青年":"童年"); 這樣也可以出結(jié)果,有什么邏輯錯(cuò)誤吧?對(duì)比 System.out.println(age >= 60 ? "老年" : age >= 40 && age < 60 ? "中年" : 18<= age || age<40 ? "少年" : "童年");
2016-09-09
舉報(bào)
2016-09-09
就看的懂第一條。
感覺(jué)第一條代碼要比第二條代碼好很多,邏輯錯(cuò)誤好像沒(méi)有
2016-09-09
幫你運(yùn)行了一下,如圖
有這幾個(gè)小問(wèn)題,藍(lán)條的地方,判斷有問(wèn)題,應(yīng)該是18>=age || age<40 ,改了之后,兩個(gè)代碼完全沒(méi)什么區(qū)別,執(zhí)行結(jié)果都一樣
其次,第二個(gè)代碼,執(zhí)行的順序有問(wèn)題,比如,age是17的時(shí)候,它先判斷age是不是>=60,如果大于,則是老年,如果不大于,則執(zhí)行接下來(lái)的 判斷,age>=40 && age <60??? 這里的age< 60,已結(jié)重復(fù)了,因?yàn)閳?zhí)行這條代碼的前提就是age<60,所以可以不要寫(xiě),代碼中能省則省,降低代碼的重復(fù)性很重要,希望能解決你的問(wèn)題,望采納
2016-09-09
第二條條件有點(diǎn)多余,且18<=age||age<40,結(jié)果會(huì)顯示17也是少年,人生會(huì)沒(méi)有童年了。
2016-09-09
沒(méi)有什么錯(cuò)誤
2016-09-09
第二句有代碼冗余。
1:age >= 60 ? "老年" : age >= 40 && age < 60 ? 首先第一個(gè)條件是age是否大于60,是的話“老年”,不是的話再判斷age是否大于等于40且小于60。前面已經(jīng)判斷過(guò)不是大于等于60了,那肯定是小于60,就不用再判斷了。
2:同理已經(jīng)判斷過(guò)age不大于等于40,就不用再判斷了。
3:&&shi 并且,||是或者.
2016-09-09
好像沒(méi)有邏輯錯(cuò)誤,就是可讀性不高