Java 尝试捕捉故障//同时放置循环
我的程序接受整数输入,然后是更大的整数输入,然后是字符串 “输入一个数字:” “请输入一个更大的数字:” “输入字符串:” 我试图使用try/catch来捕获输入字符串而不是整数的情况。我有点让代码正常工作,但在执行错误消息后,它跳过下一个int输入问题,直接进入“输入字符串” 我假设我需要一个while循环,但是我很难弄清楚它到底放在哪里,以及使用什么参数。简单地说,(我想)我需要:while(输入!=string)。我只是不知道怎么做Java 尝试捕捉故障//同时放置循环,java,loops,while-loop,try-catch,Java,Loops,While Loop,Try Catch,我的程序接受整数输入,然后是更大的整数输入,然后是字符串 “输入一个数字:” “请输入一个更大的数字:” “输入字符串:” 我试图使用try/catch来捕获输入字符串而不是整数的情况。我有点让代码正常工作,但在执行错误消息后,它跳过下一个int输入问题,直接进入“输入字符串” 我假设我需要一个while循环,但是我很难弄清楚它到底放在哪里,以及使用什么参数。简单地说,(我想)我需要:while(输入!=string)。我只是不知道怎么做 try { System.out
try {
System.out.println("Enter a number: ");
int start = myscanner.nextInt();
System.out.println("Enter a bigger number: ");
int end = myscanner.nextInt();
if (start > end) {
System.out.println("Error: Start should be smaller.");
} else {
int result = sumInt(start, end);
System.out.println("Result: " + result);
}
} catch (InputMismatchException exception) {
System.out.println("Enter a number, not a string.");
}
```````````````````````````````````````````````````````````````````````````
你试过用do吗?请参考此链接:我已经尝试过了。老实说,我被难倒了。无论我把循环放在哪里,我都会在下面的代码中看到错误。也许我只是采取了完全错误的方法。如果输入了错误的数据类型,我所需要的只是捕获错误。谢谢你的帮助。也许你可以这样使用:if(row start!=int){throw new IllegalArgumentException(“请输入整数”);}我尝试了:while(throw start!=int)并得到了“表达式的非法开始”和“.class预期”。我似乎无法使这一点起作用。你不可能在一个条件中加入。必须是以下内容:while(start!=int){抛出新的IllegalArgumentException(“请输入整数”):}
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
try{
Scanner myscanner = new Scanner(System.in);
int option =1;
do{
System.out.println("Enter a number: ");
String start = myscanner.next();
boolean sflag= isInteger(start);
if(!sflag )
{System.out.println("Error: value not Integer."); continue;}
System.out.println("Enter a bigger number: ");
String end = myscanner.next();
boolean eflag= isInteger(end);
if( !eflag)
{System.out.println("Error: value not Integer."); continue;}
if ( Integer.parseInt(start) > Integer.parseInt( end)) {
System.out.println("Error: Start should be smaller.");
} else {
int result = sumInt( Integer.parseInt( start),
Integer.parseInt( end));
System.out.println("Result: " + result);
System.out.println("select following option");
System.out.println("1. continue");
System.out.println("2.exit");
option = myscanner.nextInt();
//isInteger(option);
}
}while(option != 2);
}catch(Exception e){
System.out.println(e);
}
}
public static boolean isInteger( String input ) {
try {
Integer.parseInt( input );
return true;
}
catch( Exception e ) {
return false;
}
}
public static Integer sumInt(int start, int end){
return start + end;
}
}