大佬教程收集整理的这篇文章主要介绍了BufferedReader 无限循环,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我收到一个无限循环错误,但我不知道如何结束循环。
int a,b,c;
String line;
BufferedReader br = new BufferedReader(new inputStreamReader(system.in));
while((line=br.readline())!=null);
{
System.out.println("Enter the two numbers to add:");
a=Integer.parseInt(linE);
b=Integer.parseInt(linE);
c = a+b;
System.out.println("Sum of two numbers:"+ c);
}
您需要从while循环的末尾删除;
,因为现在您的代码就像
没有主体的while循环
while((line=br.readLine())!=null);
和代码块
{
System.out.println("Enter the two numbers to add:");
a=Integer.parseInt(linE);
b=Integer.parseInt(linE);
c = a+b;
System.out.println("Sum of two numbers:"+ c);
}
所以代码将永远停留在 while 循环中,只读取行
注意:如果像 10 20 这样的行需要先将其拆分为 2 个字符串,然后获取变量中的每个整数,则 a 和 b 会将同一行转换为 int
String[] number = line.split(" ");
a=Integer.parseInt(numbers[0]);
b=Integer.parseInt(numbers[1]);
或者你可以使用 ScAnner 逐个整数读取整数
ScAnner scAnner = new ScAnner(System.in);
while (scAnner.hasNext()) {
int a = scAnner.nexTint();
int b = scAnner.nexTint();
int c = a+b;
System.out.println("Sum of two numbers:"+ c);
}
,
package stackoverflow;
import java.io.bufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InfLoop {
public static void main(final String[] args) throws IOException {
example1();
example2();
}
private static void example1() {
try (InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);) {
while (true) {
final String line1 = br.readLine();
if (line1 == null) {
System.out.println("First number not entered! AborTing...");
break;
}
final String line2 = br.readLine();
if (line2 == null) {
System.out.println("Second number not entered! AborTing...");
break;
}
final int number1 = Integer.parseInt(line1);
final int number2 = Integer.parseInt(line2);
final int c = number1 + number2;
System.out.println("Result of '" + number1 + "'+'" + number2 + "'='" + c + "'");
}
} catch (final Exception E) {
e.printStackTrace();
}
}
private static void example2() throws IOException {
try (InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);) {
while (true) {
final Integer number1 = readInteger(br,"Enter first number: ");
if (number1 == null) {
System.out.println("First number is invalid! AborTing...");
break;
}
final Integer number2 = readInteger(br,"Enter second number: ");
final String line2 = br.readLine();
if (line2 == null) {
System.out.println("Second number is invalid! AborTing...");
break;
}
final int c = number1.intValue() + number2.intValue();
System.out.println("Sum of '" + number1 + "'+'" + number2 + "'='" + c + "'");
}
}
}
private static Integer readInteger(final BufferedReader pBr,final String pmessagE) {
if (pmessage != null) System.out.println(pmessagE);
try {
final String line = pBr.readLine();
if (line == null) return null;
return Integer.valueOf(linE);
} catch (final Exception E) {
return null;
}
}
}
/*
* 1) indentation was off,use IDE that does formatTing for you
* 2) use try/resource(/catch/finally)
* 3) you need to read 2 separate li@R_197_11335@,else a and b are the same
* 4) start using Helper methods (readInteger),save you lots of duplicate code
* 5) there's two different ways of error handling here: handle inside the method (example1),or throw (example2),* whatever is more useful for the calling code
* 6) usually handling errors (instead of throwing them) should only be done if it is a direct requirement to the method!
*/
/updatE: 在 readInteger() 中将 IOException 更改为 Exception
,尝试这样的事情:
public static void main(String[] args) throws Exception {
int a,b,c;
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
do {
System.out.println("Enter the two numbers to add:");
if ((line = br.readLine()) != null && !line.isBlank()) {
String[] input = line.split(" ");
a = Integer.parseInt(input[0]);
b = Integer.parseInt(input[1]);
c = a + b;
System.out.println("Sum of two numbers:" + c);
} else {
break;
}
} while (true);
}
输出:
Enter the two numbers to add:
4 5
Sum of two numbers:9
Enter the two numbers to add:
以上是大佬教程为你收集整理的BufferedReader 无限循环全部内容,希望文章能够帮你解决BufferedReader 无限循环所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。