※ ChatGPTを利用し、要約された質問です(原文:if文を使った問題について)
Javaのif文を使った問題の解説
次の問題について・・・
問題:
(1)String型の変数を2個作成し、それぞれに自分の名前と年齢を設定する。
(2)標準入力を行う。
(3)標準入力された値が「name」だった場合は名前の入力されている変数の値を表示する。
(4)標準入力された値が「age」だった場合は年齢の入力されている変数の値を表示する。
(5)標準入力された値が「name」と「age」以外だった場合は「わかりません」と表示する。
出力結果:
C:\>java NameAge
name
岩田
C:\>java NameAge
age
27
C:\>java NameAge
??
わかりません
解答例:
import java.io.*;
class NameAge{
public static void main(String[] args)throws IOException{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String hoge = br.readLine();
if(hoge.equals("name")){
System.out.println("岩田");
}else if(hoge.equals("age")){
System.out.println("27");
}else{
System.out.println("わかりません");
}
}
}
************************************************************
上記の解答例以外に記述方法ってないのでしょうか?
自分は最初switch文を使って出来ると思い、
import java.io.*;
class NameAge{
public static void main(String[] args)throws IOException{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
switch(str){
case "name":
System.out.println("岩田");
break;
case "age":
System.out.println("27");
break;
default:
System.out.println("わかりません");
break;
}
}
}
というふうに記述してみたのですが、
NameAge.java:13:互換性のない型
検出値 : java.lang.String
期待値 : int
switch(str){
とエラーが出てしまいました。
恐らくstrの変数をここで使おうとしたことがいけないの
だろうと解釈したのですが、
この質問の場合switch文での記述方法というのは無いですか?
やはりequals()メソッドを使ってif文で記述するしかない
のでしょうか?
お礼
あっ、そうなんですか? なんだか不自然な書き方ではあるなと思いつつも 参考書(やさしいJava)にはそういう説明がなかったので 使えるんじゃないかと思っていました。 大変勉強になりました、ありがとうございます!