我正在学习Java编程的第一个学期,我们刚刚涵盖了条件运算符(? :)。我有两个问题似乎要求我在彼此之间嵌套条件运算符,这是我可以使用if-else-if语句轻松(但繁琐)完成的事情。
1)"假设month是一个int变量,其值为1或2或3或5 ...或11或12。编写一个表达式,其值为“jan”或“feb”或“mar”或“apr”或“may”或“jun”或“jul”或“aug”或“sep”或“oct”或“nov”或“dec”,根据month的值。(因此,如果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是一个值为0或正数的int变量。编写一个表达式,根据credits的值而产生“大一”、“大二”、“大三”或“大四”。特别地,如果credits的值小于30,则表达式的值为“大一”;30-59将是“大二”,60-89将是“大三”,90或更高则为“大四”。
再次说明,我已经尝试了各种方法,我能想到的最好方法就是以下内容(我可能漏掉了一些必要的括号):
credits < 30 ? "freshman": credits >= 30 && <=59 ?
"sophomore": credits >= 60 && <= 89 ? "junior": "senior"
我在谷歌上搜索并查看了这里的数据库,但我认为没有任何问题与此完全相同;如果我错了,请原谅。程序(CodeLab)不接受Switch-Case或if-else-if解决方案,总是建议我使用条件?:运算符,但无论我到哪里看,我都不知道如何调整运算符来处理这么多条件。我们在书中还没有过多讨论这个问题,所以如果你们能帮我找到一个解决方案,并且它符合我目前所学的一点,那将是非常好的。