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