java - 在终端中运行时遇到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)```
解决方案
您的代码没有问题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 - 我希望>你<写了它。'因为如果你复制它而不是自己编写它,你就是在欺骗自己学习编程的机会。
推荐阅读
- javascript - 无法解决:将对象数组映射到按钮元素(React)
- java - 为什么 Hibernate 将我的批量插入拆分为 3 个查询
- wordpress - 致命错误:使用命名空间时找不到类“WC_Settings_Page”
- javascript - Google Maps Directions Service,如何等待所有请求完成?
- html - 如何找到元素的完整类名?
- google-chrome - 从公共网站的超集显示 iframe 下的图表时出错,错误表示 CSRF 令牌不匹配
- h5py - 为什么读取 h5 文件非常慢?
- c++ - 在 C++ 向量中存储指针时出错
- css - CSS放大字体动画导致跳跃的div
- linux - 当我的 PC 为 ARM64 架构时,安装为 AMD64 开发的软件包