前提・実現したいこと
過去に質問されている内容 https://teratail.com/questions/126529 に関して
+αで疑問に感じたことがありご質問させて頂きます。
標準入力のScannerでは while (sc.hasNext()) {}という記載により
まだ値を取得できる時にはtrueを、これ以上値を取得できない場合にはfalseを返す(ループを抜ける)。
ということができると思います。
標準入力のBufferedReaderではこの効果と同様の特別な記載方法などあるのでしょうか?
また、なかった場合下記コードにてどういう記載をすればいいかご教授願いたいです。
あと、『こんな方法もあるよ!』というのもあれば教えていただけるとありがたいです。
簡潔にまとめますと、
BufferedReaderで回数制限なく標準入力でき、その中の最大値、最小値を出したい。
そして、何も入力しなければループを抜ける的な感じです。
該当のソースコード
java
1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.util.Scanner; 5 6public class Sample_14 { 7 8 public static void main(String[] args) { 9 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 10 try { 11 int min , max; 12 13//while(ここの記載について不明)//// 14 while(" ") { 15 String line = br.readLine(); 16 int value = Integer.parseInt(line); 17 if(value < min) { 18 min = value; 19 } 20 if(value > max) { 21 max = value; 22 } 23 24 25 } 26 System.out.println("min=" + min + ", max=" + max); 27 28 }catch (IOException e) { 29 System.out.println(e); 30 } catch (NumberFormatException e) { 31 System.out.println(" "); 32 } 33 34 } 35} 36
試したこと
for文にて無限ループを作りif文で条件など設けて行いましたが前提として親要素のfor文が無限ループなので
if文でどう頑張っても抜けれないと判断しました。
while文に関しては知識がないため " " を入れて試しました。
その他どのようなことができるのか、というのは想像がつきません
補足情報(FW/ツールのバージョンなど)
eclips mac
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー