私はJavaプログラミングの最初の学期を受講しており、条件演算子(?:)条件について説明しました。条件演算子を相互に「ネスト」させたいと思われる2つの質問があります。これは、if-else-ifステートメントを使用して簡単に(ただし退屈に)実行できます。
1)「月が1または2または3または5...または11または12であるint変数であると仮定します。値が「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は、値が0または正のint変数であると想定します。クレジットの値に基づいて、値が「新入生」または「2年生」または「ジュニア」または「シニア」である式を記述します。特に、クレジットの値が30未満の場合、式の値は「新入生」です。30-59は「2年生」、60-89は「ジュニア」、90以上は「シニア」になります。
繰り返しになりますが、私はいじくり回していて、私が思いつくことができる最高のものは次のようなものです(そして私はいくつかの必要な括弧が欠けている可能性があります):
credits < 30 ? "freshman": credits >= 30 && <=59 ?
"sophomore": credits >= 60 && <= 89 ? "junior": "senior"
私はグーグルでデータベースをチェックしましたが、この質問とまったく同じものがあるとは思いません。私が間違っていたら許してください。プログラム(CodeLab)は、Switch-Caseまたはif-else-ifソリューションを使用せず、常に条件付き?を使用する必要があることを示唆しています。:オペレーターですが、どこを見ても、オペレーターをリグして非常に多くの条件を処理する方法がわかりません。私たちは本の中でこれをはるかに超えていないので、皆さんが私が解決策を見つけるのを手伝ってくれるなら、それが私がこれまでに学んだ少しでジャイブするものであれば素晴らしいでしょう。