首页 > 解决方案 > 在终端中运行时遇到java代码中的问题

问题描述

** 我正在尝试在 JAVA 中打印此模式
a/2 + a/3 + a/4 ....+ a/n **

这是我的java代码

import java.util.*;
public class ser
{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
System.out.println("Enter the value of a and n");
int a,i,n;
double s=0;
a=in.nextInt();
n=in.nextInt();
for(i=1;i<n;i++)
s=s+(double)a/(i+1);
System.out.println("ssss = "+s);
}
}

我正在使用 Kali linux,今天在终端中运行我的 java 代码时遇到了这个错误

Enter the value of a and n
a 12

错误:

Exception in thread "main" java.util.InputMismatchException
        at java.base/java.util.Scanner.throwFor(Scanner.java:939)
        at java.base/java.util.Scanner.next(Scanner.java:1594)
        at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
        at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
        at ser.main(one.java:9)```

标签: java

解决方案


您的代码没有问题1

问题在于您提供给程序的输入。

假设你是从命令行运行的,编译运行程序的方式是这样的。

steve@greybeast:/tmp$ javac ser.java
steve@greybeast:/tmp$ java ser
Enter the value of a and n
2 12
ssss = 4.206421356421357
steve@greybeast:/tmp$

看?

当它要求我“输入 a 和 n”时,我输入2 12 <ENTER>.

它有效(据我所知)。

你一直在做的是输入字母、引号中的数字和其他东西。但是您编写的程序2只 需要2 个整数,它们之间有空格。当它得到它不期望的东西时,nextInt()调用会抛出一个InputMismatchException.


1 - 实际上,有一个问题。您的代码忽略了许多重要的 Java 样式约定。例如,类名不应以小写字母开头,代码应正确缩进。但这些事情只对必须阅读您的代码的人有意义。
2 - 我希望>你<写了它。'因为如果你复制它而不是自己编写它,你就是在欺骗自己学习编程的机会。


推荐阅读