我正在尝试循环异常,但由于某些原因它没有给我重新编写扫描程序文件的选项:
我不知道如何使用BufferedReader,这就是我使用它的原因。有线索吗?
这是我的方法
的标准类package arrayExceptionsWithInput;
import java.util.*;
public class GetThoseNumbersBaby {
int firstInt;
int secondInt;
boolean error;
Scanner yourNumbers = new Scanner(System.in);
public void findNumbers()
{
System.out.println(" please enter your first number");
firstInt = yourNumbers.nextInt();
System.out.println(" pleas enter your second number");
secondInt = yourNumbers.nextInt();
int finalInt = (firstInt+secondInt);
System.out.println("total is: " + finalInt);
}
}
这是我的主要类,除了实现循环之外:
package arrayExceptionsWithInput;
import java.util.*;
public class InputException
{
public static void main(String[] args)
{
boolean error = false;
GetThoseNumbersBaby zack = new GetThoseNumbersBaby();
{
do {
try
{
zack.findNumbers();
}
catch(InputMismatchException Q)
{
System.out.println(" one of your integers was incorrect, please try again");
Q.printStackTrace();
error = true;
}
} while (error == true);
}
error = false;
}
}
如果有人对如何以不同的方式进行循环有任何想法,那我就全都听了。
答案 0 :(得分:1)
在操作之前设置错误。这样,如果用户正确的话,你就有了正确的退出条件。
error = false;
zack.findNumbers();
答案 1 :(得分:0)
我决定摆脱方法类 然后将该方法放入try异常区域。
在扫描仪之后使用.nextLine,似乎已修复。
这看起来不错?
package arrayExceptionsWithInput;
import java.util.*;
public class InputException
{
public static void main(String[] args)
{
boolean error = false;
int firstInt;
int secondInt;
Scanner yourNumbers = new Scanner(System.in);
{
do{
try
{
System.out.println(" please enter your first number");
firstInt = yourNumbers.nextInt();
yourNumbers.nextLine();
System.out.println(" pleas enter your second number");
secondInt = yourNumbers.nextInt();
yourNumbers.nextLine();
int finalInt = (firstInt+secondInt);
System.out.println("total is: " + finalInt);
yourNumbers.nextLine();
}
catch(InputMismatchException Q)
{
Q.printStackTrace();
System.out.println(" one of your integers was incorrect, please try again");
error = true;
yourNumbers.nextLine();
}
}while (error == true);
}error = false;
}
}
答案 2 :(得分:0)
你循环,而'错误'变量的值为'true'。但是,只有在抛出时(即执行'catch'块时),它才变为'true'。控制流量无法达到。