节目:
import java.util.Scanner;
public class JavaExercise1 {
static int sum, num1, num2;
static Scanner scan = new Scanner(System.in);
public static void add(){
System.out.print("Enter first number to be added: ");
num1 = scan.nextInt();
System.out.print("Enter second number to be added: ");
num2 = scan.nextInt();
sum=num1+num2;
System.out.println(num1+" + "+num2+" = "+sum);
}
static void sub(){
System.out.print("Enter first number to be substracted: ");
num1 = scan.nextInt();
System.out.print("Enter second number to be substracted: ");
num2 = scan.nextInt();
sum=num1-num2;
System.out.println(num1+" - "+num2+" = "+sum);
}
static void mul(){
System.out.print("Enter first number to be multiplied: ");
num1 = scan.nextInt();
System.out.print("Enter second number to be multiplied: ");
num2 = scan.nextInt();
sum=num1*num2;
System.out.println(num1+" x "+num2+" = "+sum);
}
static void div(){
try{
System.out.print("Enter first number to be divided: ");
num1 = scan.nextInt();
System.out.print("Entr second number to be divided: ");
num2 = scan.nextInt();
sum=num1/num2;
System.out.println(num1+" / "+num2+" = "+sum);
}catch(Exception e){
System.out.println("\nException occured...");
System.out.println(e);
}
}
static void printInstructions(){
System.out.println("1. Addition\n2. Substraction\n3. Multiplication\n4. Division\n5. Exit");
}
public static void main(String[] args) {
int ch;
do{
System.out.println("\nEnter your choice: (Choose 0 to print instructions)");
ch = scan.nextInt();
switch(ch){
case 0: printInstructions();
break;
case 1: add();
break;
case 2: sub();
break;
case 3: mul();
break;
case 4: div();
break;
case 5: break;
default:
System.out.println("Invalid choice....");
}
}while(ch!=5);
}
}
当我输入更多的数字时,会抛出一个线程异常(线程“main”java.util.InputMismatchException中的异常)
输出:
输入您的选择:(选择0打印说明)4输入第一个要分割的数字:9999999999
异常发生...java.util.输入错误匹配异常:对于输入字符串:"9999999999"
输入您的选择:(选择0打印说明)异常线程主java.util.输入错误匹配异常:对于输入字符串:"9999999999"在java.base/java.util.Scanner.nextInt(Scanner.java:2264)在java.base/java.util.Scanner.nextInt(Scanner.java:2212)在JavaExercise1.main(JavaExercise1.java:52)
进程已完成,退出代码为1
您的输入9999999999
大于Java中最大的int
:2147483647
。
如果您想处理如此大的数字,请将您的scan.nextInt
更改为scan.nextLong
,并将相应的整数更改为long
。
或者,或者另外,使用try catch
块捕获异常并采取适当的操作(如向用户发送错误消息以重试)。这可能是正常用户输入检查的一部分。对用户的输入非常怀疑,因为有人可能会键入“Prithviraj是最棒的!”
而不是数字。
最后但并非最不重要的是,欢迎来到堆栈。
当我尝试在错误代码下面运行但得到错误时,我也使用了“givenArray[i]=sc.next();或givenArray[i]=sc.nextLine();”但仍然失败。我尝试了许多不同的方法,但仍然得到相同的错误。似乎扫描仪无法读取数组我需要此代码的帮助,请提前谢谢。 提供的输入:输入第一个数组的长度:4并单击Enter, 输入第二个数组的长度:4并单击Enter, 输入第一个数组:2,3,4
我正在为一堂课做家庭作业。你必须计算这个月的工资。每次我尝试运行它时,它总是这样说:我如何修复它?线程“main”java.util.InputMismatchException中的异常 java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(扫描仪.java:1485) java.util.Scanner.ne
我只是在练习java,目前我正在试验getter/setter方法和构造函数。java程序的工作原理是,我能够将用户输入存储到对象中,但当我将字符串“Dice and rollers”输入到gametype字符串变量中时,会出现一个挂起的未捕获异常InputMismatch错误。 有人能给我解释一下这是为什么吗? 另外,我在下面分享了我的源代码。 上面的是超类,下面的源代码是构造函数和getter
(更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?
我做错了什么?? 错误是: 线程“main”java中出现异常。util。java上的NoTouchElementException 。util。扫描仪。通过java上的(Scanner.java:862) 。util。扫描仪。下一步(Scanner.java:1485) 在java。util。扫描仪。nextInt(Scanner.java:2117) 位于java。util。扫描仪。nextI
我知道有很多关于这个例外的帖子,但是我不能解决这个问题。我认为必须编辑类路径来解决它。我试图在hadoop架构体系中运行一个名为远程地图的程序。这是我得到的错误。 Echo$CLASSPATH给出了一个空行 cat~/。bash_简介说 更新: $HADOOP_HOME $HADOOP_CLASSPATH 有人能帮我解决这个问题吗? 谢谢