• ベストアンサー

入力文字の繰返し文

超初心者です! 学校の課題で困っています。。 問題は... ********* キーボードから文字を入力 1.未入力のときは「未入力です。」と表示する。 2.EXITのときにプログラムを終了。   (EXITが入力されない限り繰返し) 3.文字を入力したときには入力文字を表示 ********* 一応、以下のように作ってみましたが、全然思うようになりません。 ご存知の方、お助けください>< import java.io.*; public class GW_Rensyu_1 {  public static void main(String[] args) throws IOException{ System.out.println("文字を入力してください。"); BufferedReader br = new BufferedReader      (new InputStreamReader(System.in)); String str = br.readLine(); while(str != "EXIT"){ if(str == " "){ System.out.println("未入力です。"); } } } }

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

バッファドリーダーで読み込むのが Whileループに中にありません これでは いくらループを回っても strが変化しません Stringオブジェクトと 文字列リテラルの比較は Stringクラスのequalsを使いましょう ==や != 演算子ではオブジェクトの比較になるので期待した結果になりません 空文字列の判定には equalsでもいいのですが lengthが0かどうかの判定でよさそうです BufferdReaderは IOExceptionをスローするので try { str = br.ReadLine(); } catch( IOExceprion e ) { // 必要なエラー処理 } といった記述にします

noname#58735
質問者

お礼

ご丁寧にありがとうございます(≧▽≦)☆ なるほど・・・try~cathの例外処理ですね♪ 最近習ったばかり&他の課題にも問題出されています。。 参考にさせていただき、自力で頑張ります!! また質問させて頂くかもしれませんが・・・

その他の回答 (1)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

入力がwhileループの外にあるので、1回しか入力しませんぜ。 そして、Stringを!=や==で比較してはいけない(*)。equals()メソッドを使いましょう。 (*:その理由は自分で調べてね。)

noname#58735
質問者

お礼

そうでしたか!!数値での繰返し文しかやったことがなかったので !=等の演算子はどうだろう??と考えていたところでした☆ スッキリしました!ありがとうございます♪

関連するQ&A

専門家に質問してみよう