月を入力し、その月の季節を表示するプログラムを作っています。
もし負の値や、13以上が入力されたらもう一度入力を促すようにdo文を入れましたが、
実際に-5などを入れてみると、メソッドが実行され、空白が返されてしまいます。
mainメソッドの実行の順番としては、上から下なので、
do文のwhileの条件を外れるまでdo文内の文が実行され、それからメソッドが実行されるのではないのでしょうか?
import java.util.Scanner; public class Hello{ static String printSeason(int m) { switch(m) { case 3: case 4: case 5: return "春"; case 6: case 7: case 8: return "夏"; case 9: case 10: case 11: return "秋"; case 12: case 1: case 2: return "冬"; } return ""; } public static void main(String[] args) { try(Scanner stdIn = new Scanner(System.in)){ int m; do { System.out.println("何月ですか(1~12月)"); m = stdIn.nextInt(); }while(m < 1 && m > 12); System.out.println("その月の季節は" + printSeason(m) + "です"); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/18 13:03