gpt4 book ai didi

java - 检查用户输入是否为 Int,无异常?

转载 作者:行者123 更新时间:2023-12-01 12:11:49 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的程序,从用户输入中获取两个数字并将它们相加。我已经将其记录下来以便正确使用,但是如果用户输入其他内容(例如字符串),我会尝试阻止崩溃。我听说这是不好的做法,如何才能无异常地检查输入?

理想情况下,我希望它只是重复要求输入数字的最初问题。我假设这将在循环内?

即:

先询问用户号码如果不是 int,则重复

询问用户第二个号码如果不是 int,则重复

做数学

编辑:所以到目前为止,在帮助下我已经接近成功了。我使用了一些 do-while 循环来让它重复问题,直到输入是整数。然而现在,即使我输入一个整数,它也会不断重复第一个 while-do 循环。如果我输入某个东西!=整数,它似乎跳到第二个 while-do 然后停止。

编辑:新代码

import java.util.Scanner;

public class App {

public static void main(String[] args) {

Scanner scan;

scan = new Scanner(System.in);
int firstNumber = Integer.MIN_VALUE;
int secondNumber = Integer.MIN_VALUE;

do {
System.out.print("Enter the first number to be added: ");
if (scan.hasNextInt()) {
firstNumber = scan.nextInt();
}
}
while(firstNumber != Integer.MIN_VALUE);


do {
System.out.print("Enter the second number to be added: ");
if (scan.hasNextInt()) {
secondNumber = scan.nextInt();
}
}
while(secondNumber != Integer.MIN_VALUE);

if ((firstNumber != Integer.MIN_VALUE) && (secondNumber != Integer.MIN_VALUE)) {
int sum = secondNumber + firstNumber;
System.out.println("That equals: " + sum);
}
scan.close();
}
}

旧代码

import java.util.Scanner;

public class calculate {
private static Scanner scan;

public static void main(String[] args) {

scan = new Scanner(System.in);

System.out.print("Enter the first number to be added: ");
int firstNumber = scan.nextInt();

System.out.println("Enter the second number to be added: ");
int secondNumber = scan.nextInt();

int sum = secondNumber + firstNumber;

System.out.println("That equals: "+ sum);
}
}

最佳答案

您可以简单地使用:

if(scan.hasNextInt()) {//<-- get in if its a number
int firstNumber = scan.nextInt();
}

关于java - 检查用户输入是否为 Int,无异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228067/

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