0
私は初心者のコーダーであり、私は星座を決定するプロジェクトに取り組んでいます。有効な入力のための無効な入出力を受信しました
問題:「他に場合は、」利用者ではなく、例えば、月ジェミニ日付の「であれば、」ステートメントに入力された月と日付に基づいてホロスコープを決定正確にさかのぼります。私は5月21日から5月31日の間に入力された日付について無効な入力を受けます。私はそのケースを書き直そうとしましたが、まだ問題があります。
誰かが私が知らない何かを見て私に知らせてもらえれば、私は非常に感謝しています。ありがとう!
switch (month) {
case 1:
if (month == 12 && day >= 22 && day <= 31)
zodiac = "Capricorn";
else if (month == 01 && day < 20)
zodiac = "Capricorn";
else
zodiac = "Invalid Input";
break;
case 2:
if (month == 1 && day >= 20 && day < 32)
zodiac = "Aquarius";
else if (month == 2 && day < 19)
zodiac = "Aquarius";
else
zodiac = "Invalid Input";
break;
case 3:
if (month == 2 && day >= 19 && day <= 29)
zodiac = "Pisces";
else if (month == 3 && day < 21)
zodiac = "Pisces";
else
zodiac = "Invalid Input";
break;
case 4:
if (month == 3 && day >= 21 && day < 32)
zodiac = "Aries";
else if (month == 4 && day < 20)
zodiac = "Aries";
else
zodiac = "Invalid Input";
break;
case 5:
if (month == 4 && day >= 20 && day < 31)
zodiac = "Taurus";
else if (month == 5 && day < 21)
zodiac = "Taurus";
else
zodiac = "Invalid Input";
break;
case 6:
if (month == 5 && day >= 21 && day < 32)
zodiac = "Gemini";
else if (month == 6 && day < 21)
zodiac = "Gemini";
else
zodiac = "Invalid Input";
break;
case 7:
if (month == 6 && day >= 21 && day < 31)
zodiac = "Cancer";
else if (month == 7 && day < 23)
zodiac = "Cancer";
else
zodiac = "Invalid Input";
break;
case 8:
if (month == 7 && day >= 23 && day < 32)
zodiac = "Leo";
else if (month == 8 && day < 23)
zodiac = "Leo";
else
zodiac = "Invalid Input";
break;
case 9:
if (month == 8 && day >= 23 && day < 32)
zodiac = "Virgo";
else if (month == 9 && day < 23)
zodiac = "Virgo";
else
zodiac = "Invalid Input";
break;
case 10:
if (month == 9 && day >= 23 && day < 31)
zodiac = "Libra";
else if (month == 10 && day < 23)
zodiac = "Libra";
else
zodiac = "Invalid Input";
break;
case 11:
if (month == 10 && day >= 23 && day < 32)
zodiac = "Scorpio";
else if (month == 11 && day < 22)
zodiac = "Scorpio";
else
zodiac = "Invalid Input";
break;
case 12:
if (month == 11 && day >= 22 && day < 31)
zodiac = "Sagittarius";
else if (month == 12 && day < 22)
zodiac = "Sagittarius";
else
zodiac = "Invalid Input";
break;
はあなたをされていることを確認それが唯一の場所である:ケース1では、月など...私はこのような何かにあなたのスイッチ・ステートメントにロジックを書き換えるために、あなたをお勧めしたい
、1でありますあなたは期待される出力を得られないでしょうか?私はもう少し '' Invalid Input ''sを期待しています –私はランダムにいくつか行いましたが、実際には私は今それらを使って倍増しています。 –
switch文の中で、月は常に大文字と同じになります。だから、このようなチェックは:case 1:if(month == 12) 'は常に失敗するでしょう。 –