Windows10でEclipseを用いてJavaの勉強をしています。
switchを使ったプログラムの練習として、参考書の例を少し変えて、以下のようなプログラムを組みました。
Java
1package practice1; 2 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7public class test9 { 8 public static void main(String[] args) throws IOException 9 { 10 System.out.println("あなたの血液型を半角英字で入力して下さい。"); 11 12 BufferedReader br = 13 new BufferedReader(new InputStreamReader(System.in)); 14 String str=br.readLine(); 15 char res = str.charAt(0); 16 17 switch(res){ 18 case 'A': 19 System.out.println("日本人の40%があなたと同じ血液型です。"); 20 break; 21 case 'B': 22 System.out.println("日本人の20%があなたと同じ血液型です。"); 23 break; 24 case 'O': 25 System.out.println("日本人の30%があなたと同じ血液型です。"); 26 break; 27 default: 28 System.out.println("あなたと同じ血液型の人は日本にほとんどいません。"); 29 break; 30 } 31 32 } 33}
しかし、これでは「AB」と入力すると、case'A'だと判断されてしまいます。
つまり1文字しか認識されていないのだと思うのですが、キーボード入力のプログラムの書き方が悪いのか、switch文が悪いのか自分で判断ができず、上手く調べることすらできません。
本当は、このプログラムはA、B、Oの次にABのパターンを分岐させて、defaultは"半角英字でABO型の血液型を入力して下さい。"とでも表示させようかと思っています。
AとABを区別して認識してもらうようにするには、どこを改良すればよいのでしょうか?
ご指導のほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/07 05:25
2016/11/07 05:33
2016/11/07 05:43
2016/11/07 05:55
2016/11/07 06:15
2016/11/07 06:21
2016/11/07 06:23