三元条件运算符中的多个条件?
我正在学习Java编程的第一个学期,我们刚刚介绍了条件运算符(? :)条件。我有两个问题似乎希望我将条件运算符“嵌套”在彼此之间,我可以很容易地(但乏味地)用if-else-if语句来做到这一点。
1)“假设月份是一个int变量,其值为1或2,3或5......或 11 或 12。根据月份的值,编写一个表达式,其值为“jan”或“feb”或“mar”或“apr”或“may”或“jun”或“jul”或“aug”或“sep”或“oct”或“nov”或“dec”。(因此,如果 month 的值为 4,则表达式的值将为 “apr”。
我的一个想法看起来像这样:
(month==1)?"jan":(month==2)?"feb": (month==3)?"mar": (month==4)?"apr":
(month==5)?"may":(month==6)?"jun": (month==7)?"jul":(month==8)?"aug":
(month==9)?"sep": (month==10)?"oct": (month==11)?"nov": (month==12)?"dec":
(我知道这不是一个完整的表达式,但我不确定如何表达运算符来处理这么多条件。
2) 假设 credits 是一个 int 变量,其值为 0 或正。根据学分的价值,写一个表达式,其值为“大一”或“大二”或“大三”或“大四”。特别是:如果学分的价值小于30,则表达式的值为“新生”;30-59岁将是“大二学生”,60-89岁将是“大三学生”,90岁或更多将是“大四学生”。
再一次,我一直在玩弄,我能想到的最好的是这样的东西(我可能缺少一些必要的括号):
credits < 30 ? "freshman": credits >= 30 && <=59 ?
"sophomore": credits >= 60 && <= 89 ? "junior": "senior"
我已经谷歌搜索并检查了这里的数据库,但我不认为有任何东西与这个问题完全相同;如果我错了,请原谅我。该程序(CodeLab)不会采用Switch-Case或if-else-if解决方案,总是建议我应该使用条件?:操作员,但是无论我在哪里看,我都没有弄清楚如何操纵操作员来处理这么多条件。在这本书中,我们还没有超过这一点,所以如果你们能帮我找到一个解决方案,那就太好了,如果它是一个与我迄今为止学到的一点点东西相吻合的解决方案。