• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IF文と文字列の組み合わせについて)

IF文と文字列の組み合わせについて

このQ&Aのポイント
  • IF文と文字列の組み合わせについて悩んでいます。現在、InputStreamReader、BufferedReaderクラスを使用して応答処理を行い、返事に応じて処理を分岐させようとしています。しかし、どの入力を行っても最終的にelse文に進んでしまいます。どうすれば正しく動作するようになるでしょうか?
  • ソースコードでは、if文を使って返答に応じた分岐処理を行っています。しかし、どの返答を入力しても最終的にelse文に進んでしまいます。文字列とif文を組み合わせる方法が間違っているのでしょうか?解決策を教えてください。
  • IF文と文字列の組み合わせについて悩んでいます。現在、InputStreamReader、BufferedReaderクラスを使用して応答処理を行い、返事に応じて処理を分岐させようとしています。しかし、どの入力を行っても最終的にelse文に進んでしまいます。どうすれば正しく動作するようになるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

Stringはクラスオブジェクトなので、==で比較してはいけません。 値が等しいことをチェックするのなら、equals()メソッドを使います。 String a = new String("ABC"); String b = new String("ABC"); このとき、a==b はfalseになりますが、a.equals(b) はtrueになります。

newjava
質問者

お礼

回答ありがとうございます。 早速試してみたのですが、どうもうまくいかないようです。 以下のようなエラーが出ております。 C:\javasrc>javac test1.java test1.java:17: 型 boolean と java.lang.String は比較できません。 if(str2.equals("はい")=="はい"){ ^ test1.java:19: 型 boolean と java.lang.String は比較できません。 }else if(str2.equals("いいえ")=="いいえ" ){ ^ エラー 2 個 C:\javasrc>javac test1.java test1.java:17: 型 java.lang.String と boolean は比較できません。 if(str2.toString()==str2.equals("はい")) { ^ test1.java:19: 型 java.lang.String と boolean は比較できません。 }else if(str2.toString()==str2.equals(" いいえ")){ ^ エラー 2 個

newjava
質問者

補足

すみません、 if(str2.equals("はい")==true) というふうに変換したら無事問題解決しました。 ありがとうございました。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • ローランドやボス製品に関する具体的な質問をしたい方に向けた投稿。
  • 設定方法や接続の問題についての助けを求める内容。
  • 特定の製品や部品に関連した困りごとを解決するための情報が期待されています。
回答を見る

専門家に質問してみよう