gpt4 book ai didi

java - 使用外部循环处理异常

转载 作者:行者123 更新时间:2023-12-02 00:46:25 25 4
gpt4 key购买 nike

我正在尝试处理用户输入并只允许输入浮点数。可以输入的浮点数没有限制,但如果连续输入两个非浮点数,程序将结束。当程序结束时,它将打印所有数字的总和。

问题是,每当我运行它时,它都会立即运行 while 循环并将计数增加到 2 并中断循环。在取消之前,您只能输入一个非 float 。

     while(true){
try{
sum+= inRead.nextFloat();
}
catch (InputMismatchException e){
if (count == 2){
System.out.println(sum);
break;
}
else{
count+=1;
}
}
}

编辑:正如你们中的一些人指出的那样,应该在 while 循环之前初始化 count
    Scanner inRead = new Scanner(System.in);
float sum = 0;
int count = 0;
while(true){
try{
sum+= inRead.nextFloat();
}
catch (InputMismatchException e){
if (count == 2){
System.out.println(sum);
break;
}
else{
count+=1;
}
}
}

最佳答案

尝试这个:

    Scanner inRead = null;
float sum = 0;
int count = 0;
while(true){
try{
inRead = new Scanner(System.in);
sum+= inRead.nextFloat();
if(count == 1) {
count = 0;
}
}
catch (InputMismatchException e){
if (count == 1){
System.out.println(sum);
break;
}
else{
inRead = null;
count+=1;
}
}
}
counter在您的代码中增加 2,因为当您遇到 InputMismatchException 时在 nextFloat()方法。第二个 nextFloat()你会遇到不会工作因为你需要创建一个 new Scanner因为它会在循环的早期导致错误,所以我添加了 if(count == 1)当您需要将其重置为 0 所以它可以解决您的问题到 停止并添加所有 当连续输入两个非浮点数时。

关于java - 使用外部循环处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com