Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试捕捉故障//同时放置循环_Java_Loops_While Loop_Try Catch - Fatal编程技术网

Java 尝试捕捉故障//同时放置循环

Java 尝试捕捉故障//同时放置循环,java,loops,while-loop,try-catch,Java,Loops,While Loop,Try Catch,我的程序接受整数输入,然后是更大的整数输入,然后是字符串 “输入一个数字:” “请输入一个更大的数字:” “输入字符串:” 我试图使用try/catch来捕获输入字符串而不是整数的情况。我有点让代码正常工作,但在执行错误消息后,它跳过下一个int输入问题,直接进入“输入字符串” 我假设我需要一个while循环,但是我很难弄清楚它到底放在哪里,以及使用什么参数。简单地说,(我想)我需要:while(输入!=string)。我只是不知道怎么做 try { System.out

我的程序接受整数输入,然后是更大的整数输入,然后是字符串

“输入一个数字:”

“请输入一个更大的数字:”

“输入字符串:”

我试图使用try/catch来捕获输入字符串而不是整数的情况。我有点让代码正常工作,但在执行错误消息后,它跳过下一个int输入问题,直接进入“输入字符串”

我假设我需要一个while循环,但是我很难弄清楚它到底放在哪里,以及使用什么参数。简单地说,(我想)我需要:while(输入!=string)。我只是不知道怎么做

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;
   }
}