前提・実現したいこと
ここに質問の内容を詳しく書いてください。
5回までの入力範囲で"end"という文字列が入力されるまで終了するプログラムを作成しています。
コマンドプロンプト上で、Javac Lesson3No007.java,Java Lesson3No007のコンパイル、実行コマンドでは成功しました。
発生している問題・エラーメッセージ
//"end"という文字列が存在するか確認 というコメントアウトしている次行のソースコード
//"end"という文字列が存在するか確認
if( s.equals( "end" ) ){
break;
}
ですが、
equalsをcontainsに書き換えても実行後に、WQend、end、endEWQを入力後ソースコードが終了します。
今回はendのみの入力でソースコードを終了したいソースコードを作成したいです。
どなたかご教授願いますでしょうか?
宜しくお願い致します。
該当のソースコード
//フルネームでインポートしている。 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; //プログラム練習問題_スッキリわかるJava入門 //プログラム練習問題_第3章_条件分岐と繰り返し_007 /* 【タイトル】 条件分岐と繰り返し 【目的】 for文とif文への理解の確認。 【技術要素】 ・for文 ・if文 ・break 【問題】 任意の文字列を入力可能とする。 入力された文字列が"end"以外の場合、 入力された文字列を出力する。 出力後、再度入力可能とする。 最大5回まで入力可能とします。 <出力イメージ> 入力:AAA AAA 入力:BBB BBB 入力:end end 入力:AAA AAA 入力:BBB BBB 入力:CCC CCC 入力:DDD DDD 入力:EEE EEE */ // javadoc -d html Lesson3No007.java /* * @author M.S * @version 20191201.5 */ //クラス名:Lesson3No007で宣言している。 //どのクラスからもアクセスできる。 public class Lesson3No007{ /** * mainメソッド * @param args 文字列を入力 */ //メソッド名がmain, 引数としてString型の配列: String[] args, static修飾子が付与されている。 public static void main( String[] args )throws IOException{ //まとめてテキストを読み込むための処理を用意 /*BufferedReaderは文字、配列、行をバッファリングすることによって、 文字型入力ストリームからテキストを効率良く読み込みます。*/ /*InputStreamReaderはバイト・ストリームから文字ストリームへの橋渡しの役目を持ちます。 バイトを読み込み、指定されたcharsetを使用して文字にデコードします。*/ BufferedReader br = new BufferedReader( new InputStreamReader( System.in )); System.out.println( "文字列を入力してください" ); for( int i = 0; i < 5; i++ ){ System.out.print( "入力:" ); //改行を含まず内容がsに代入される。 String s = br.readLine(); //"end"という文字列が存在するか確認 if( s.equals( "end" ) ){ break; } } //閉じる。 br.close(); } }
試したこと
if( s == "end" ){
break;
}
と書き換えたら、endと入力してもif文のtrueの処理に入らず、5回入力までソースコード終了となります。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー