在运行时获取InputMismatchException,但编译良好 import java.util.Scanner; 公共类德莱克{ 公共静态void main(字符串[]args){ Scanner Scanner=新扫描仪(System.in);//声明扫描仪 System.out.println(“给出的内容:”); System.out.print(“多少面?”);//输入给定的面数 System.out.println(“”); 双输入=scanner.nextInt(); System.out.print(“多少角度?”);//输入给定的角度数 System.out.println(“”); 双输入2=scanner.nextInt(); 如果((输入+输入2)>3){//观察输入是否大于3,如果大于3则出错 System.out.println(“请只输入3个条目,您输入了”+((int)(输入+输入2))+“eingegeben…”); }如果((输入==1)和&(输入2==2))为else{ 双面1=inputDialogSide();//输入一个侧面 双角度1=inputDialogAngle();//输入角度 双角度2=inputDialogAngle();//输入角度 单侧两个角度一般(侧1、角1、角2); }如果((输入==2)和&(输入2==1))为else{ System.out.println(“角度是封闭的还是排他性的?”); String input3=scanner.nextLine();//输入3用于标识角度是包含的还是独占的 if(input3.equals(“inklusiv”){//如果输入了inclusive,则将变量inclu设置为true //从包容和排斥的角度区分案例 双面1=inputDialogSide();//输入一面 System.out.println(“”); 双面2=inputDialogSide();//输入另一面 System.out.println(“”); 双角度1=inputDialogAngle();//输入角度 两个侧面(侧面1、侧面2、角度1); }否则{ 双面1=inputDialogSide();//输入一面 双面2=inputDialogSide();//输入另一面 双角度1=inputDialogAngle();//输入角度 两个侧面(侧面1、侧面2、角度1); } }else如果((输入==3)和&(输入2==0)){//如果输入了3个边,则为条件 双面1=inputDialogSide();//输入第一面 双面2=inputDialogSide();//输入第二面 双面3=inputDialogSide();//输入第三面 三边(边1、边2、边3); } } 公共静态双inputDialogAngle(){//用于输入角度的子例程 扫描仪=新的扫描仪(System.in); System.out.print(“输入角度:”); double input5=scanner.nextDouble();//角度的input5(变量) System.out.println(“”); 返回输入5; } 公共静态双inputDialogSide(){//用于输入端的子例程 扫描仪=新的扫描仪(System.in); System.out.print(“输入边长:”); double input4=scanner.nextDouble();//输入4(变量)表示一个边 System.out.println(“”); 返回输入4; } 静态void集合(双alpha、双beta、双gamma、双sidea、双sideb、双sidec){//对数组中的值进行排序 double[]SidesAngles=新的double[3][2];//角度的边长值数组 对于(int i=0;i

在运行时获取InputMismatchException,但编译良好 import java.util.Scanner; 公共类德莱克{ 公共静态void main(字符串[]args){ Scanner Scanner=新扫描仪(System.in);//声明扫描仪 System.out.println(“给出的内容:”); System.out.print(“多少面?”);//输入给定的面数 System.out.println(“”); 双输入=scanner.nextInt(); System.out.print(“多少角度?”);//输入给定的角度数 System.out.println(“”); 双输入2=scanner.nextInt(); 如果((输入+输入2)>3){//观察输入是否大于3,如果大于3则出错 System.out.println(“请只输入3个条目,您输入了”+((int)(输入+输入2))+“eingegeben…”); }如果((输入==1)和&(输入2==2))为else{ 双面1=inputDialogSide();//输入一个侧面 双角度1=inputDialogAngle();//输入角度 双角度2=inputDialogAngle();//输入角度 单侧两个角度一般(侧1、角1、角2); }如果((输入==2)和&(输入2==1))为else{ System.out.println(“角度是封闭的还是排他性的?”); String input3=scanner.nextLine();//输入3用于标识角度是包含的还是独占的 if(input3.equals(“inklusiv”){//如果输入了inclusive,则将变量inclu设置为true //从包容和排斥的角度区分案例 双面1=inputDialogSide();//输入一面 System.out.println(“”); 双面2=inputDialogSide();//输入另一面 System.out.println(“”); 双角度1=inputDialogAngle();//输入角度 两个侧面(侧面1、侧面2、角度1); }否则{ 双面1=inputDialogSide();//输入一面 双面2=inputDialogSide();//输入另一面 双角度1=inputDialogAngle();//输入角度 两个侧面(侧面1、侧面2、角度1); } }else如果((输入==3)和&(输入2==0)){//如果输入了3个边,则为条件 双面1=inputDialogSide();//输入第一面 双面2=inputDialogSide();//输入第二面 双面3=inputDialogSide();//输入第三面 三边(边1、边2、边3); } } 公共静态双inputDialogAngle(){//用于输入角度的子例程 扫描仪=新的扫描仪(System.in); System.out.print(“输入角度:”); double input5=scanner.nextDouble();//角度的input5(变量) System.out.println(“”); 返回输入5; } 公共静态双inputDialogSide(){//用于输入端的子例程 扫描仪=新的扫描仪(System.in); System.out.print(“输入边长:”); double input4=scanner.nextDouble();//输入4(变量)表示一个边 System.out.println(“”); 返回输入4; } 静态void集合(双alpha、双beta、双gamma、双sidea、双sideb、双sidec){//对数组中的值进行排序 double[]SidesAngles=新的double[3][2];//角度的边长值数组 对于(int i=0;i,java,exception,runtime-error,Java,Exception,Runtime Error,我认为这里有一个问题: double input = scanner.nextInt(); 将其更改为此事件和所有其他事件: double input = scanner.nextDouble(); 您的问题与代码的此部分有关: else if((input==2) && (input2==1)){ System.out.println("Is the angle inklsiv or exclusiv?"); String

我认为这里有一个问题:

double input = scanner.nextInt();
将其更改为此事件和所有其他事件:

double input = scanner.nextDouble();

您的问题与代码的此部分有关:

else if((input==2) && (input2==1)){

            System.out.println("Is the angle inklsiv or exclusiv?");

            String input3 = scanner.nextLine();                                 //input 3 for identification if the angle is inclusive or exclusive

            if(input3.equals("inklusiv")){ 
因为您在这里请求的不是一整行,而是一个令牌,所以请使用Scanner.next()而不是Scanner.nextLine()

公共字符串下一步() 在此扫描程序中查找并返回下一个完整的标记。完整的标记前面和后面都有与分隔符模式匹配的输入。在等待扫描输入时,此方法可能会被阻止,即使以前调用hasNext()时返回true也是如此

因此,改变这一行:

 String input3 = scanner.nextLine();


您的程序应该可以正常运行!

double-input=scanner.nextInt();
更改为double-input=
scanner.nextDouble();
这行的输入是什么?
double-input=scanner.nextInt();
我将double-input=scanner.nextInt()更改为
nt-input=scanner.nextInt()
所以键入给定的边数或角度数。这样,从扫描仪输入的数字(input)和(input2)就不允许大于3整数,应该可以很好地工作。你的问题对我来说有点奇怪。如果程序要求,为什么要输入类似于
“inklusiv”
“输入边长”。你没有注意到吗,“角度是inklsiv还是排他性?”问题被跳过了?可能是重复的我尝试了这个bevor,因为我有同样的想法,但没有帮助。非常感谢。:)我已经两天没有解决这个问题了,这几乎让我发疯了。它工作得很好。^^很抱歉,但是你对这个问题的解释是不正确的。这个改变解决了他的问题,但还有另一个原因吗?你能解释一下吗
 String input3 = scanner.next();