我刚开始在java上大学课程,在Scanner类中一直收到这个错误。
import java.util.Scanner;
public class InchConversion
{
public static void main (String[] args)
{
Double inches, centimeters;
Scanner fromKeyboard = new Scanner(System.in);
System.out.println("Enter Value in Inches");
inches = fromKeyboard.nextDouble();
centimeters = inches*2.54;
System.out. println(inches + " inches is equal to " + centimeters + " centimeters.");
}
}我一直得到的错误是:
Compiling InchConversion.java.......
-----------OUTPUT-----------
Enter Value in Inches
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at InchConversion.main(InchConversion.java:11)
[Finished in 0.8s with exit code 1]发布于 2015-10-29 04:24:31
例如,您需要使用3.0作为输入,因为您明确地告诉扫描程序需要浮点值,而在Java float中需要小数,即使它是整数。工作安排将是:
double inches = Double.parseDouble(fromKeyboard.nextLine());这样,您告诉扫描器解析当前行上的第一个字符串值,该字符串值也可以解释为双精度(在这种情况下,java编译器并不关心数字是否没有小数,它在解析过程中将其相加)。所以如果你输入20,它会自动调用add decimal和inches = 20.0。但是如果你想使用inches = 20.1,你仍然需要输入20dot1。但至少它摆脱了非直观和外来的20.0输入。
编辑:我用我的修复程序测试了你的代码,它对我来说工作得很好
public static void main (String[] args) {
Double inches, centimeters;
Scanner fromKeyboard = new Scanner(System.in);
System.out.println("Enter Value in Inches");
inches = Double.parseDouble(fromKeyboard.nextLine());
centimeters = inches*2.54;
System.out.println(inches + " inches is equal to " + centimeters + " centimeters.");
}如果输入1,则输出为1.0 inches is equal to 2.54 centimeters.
https://stackoverflow.com/questions/33400910
复制相似问题