/我的目标是使用终端接收2个整数,并在Java程序中将它们相加。我需要确认两个终端条目都是整数。如果是,我将继续将整数相加。如果不是,我应该打印“输入无效。正在终止…”
我试图使用带有hasNextInt()的if语句,但我的程序仅验证第一个扫描仪输入。如何确认两个扫描仪输入都是整数?任何帮助都将不胜感激。
这是我的Java代码:/
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.println("List of operations: add subtract multiply divide alphabetize");
System.out.println("Enter an operation:");
String operationInput = input.next().toLowerCase();
switch (operationInput){
case "add":// for addition
System.out.print("Enter two integers:");
if (input.hasNextInt() == false) { //confirm the numbers are integers, otherwise terminate
System.out.println("Invalid input entered. Terminating...");
break;
}
else {
int a1 = input.nextInt();
int a2 = input.nextInt();
int at = a1 + a2;
System.out.println("Answer: " + at);
input.close();
break;
}
3条答案
按热度按时间gijlo24d1#
如果int可用,您已经读取了它,基本上,您只需要重复这个步骤。您可以使用附加标志来指示程序是否能够成功读取两个整数:
更新
完整示例:
e4yzc0pl2#
你可以改变结构。您可以使用
try
块和catch
块代替if ( ! input.hasNextInt())
和else
块。如果没有两个整数,input.nextint()
将抛出异常。扫描仪API#nextIntimzjd6km3#
我将使用方法nextLine–而不是方法
nextInt
,让用户在一行中输入两个整数,用空格分隔。此外,我认为将代码划分为方法是一个好主意,而不是在方法
main
中编写所有代码。似乎您还打算进行加法减法、乘法和除法运算,因此下面的部分代码可以被视为帮助您完成程序的模板。
请注意,
RuntimeException
是未经检查的exception,并且类java.lang.Integer
的[static]方法parseInt
可能会抛出NumberFormatException
,这也是未经检查异常。