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