gpt4 book ai didi

java - try catch Trouble//while 循环放置

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

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

“输入一个数字:”

“请输入更大的数字:”

“输入字符串:”

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

我假设我需要在某个地方有一个 while 循环,但我无法弄清楚将其放置在何处以及使用什么参数。简单地说,(我认为)我需要: while (input != 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.");

}
```````````````````````````````````````````````````````````````````````````

最佳答案

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

关于java - try catch Trouble//while 循环放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58072577/

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