我有一个问题需要解决:http://www.urionlinejudge.com.br/judge/problems/view/1117
使用我的代码,当代码到达最后一行时,readLine 方法不会返回任何内容。它等待我输入另一行输入。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class ValidacaoDeNota {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
double num;
Double ultimaNotaValida = null;
while ((line=br.readLine()) != null) {
num = Double.parseDouble(line);
if (num < 0 || num > 10) {
bw.write("nota invalida");
} else if (ultimaNotaValida == null) {
ultimaNotaValida = num;
} else {
bw.write("media = " + ((ultimaNotaValida+num) / 2) );
}
bw.write("\n");
}
bw.flush();
}
}
最佳答案
您需要输入 Ctrl/d (Windows) 或 Ctrl/z(Unix、Linux 等)才能在控制台产生流结束。然后 readLine() 将返回 null 并且循环将终止。
关于Java BufferedReader readLine 方法不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18537781/