嗨,我是Java的新手,对它了解不多。我刚刚编写了一个程序,不确定它是否正确。我想要用户输入以便计算答案,这是代码:

import java.util.Scanner;

class  Vedant
{
    public static void main(String[] args)
        {
            Scanner inputa=new Scanner(System.in);
            int b=inputa.nextInt();
            if(b<20);
            int a=5;
            {
                System.out.println("Answer ="+a);
            }
        }
}


当我在cmd中运行此文件时,它什么也没做,甚至不要求输入。

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at Vedant.main(Vedant.java:8)


请帮助。是的,我只是一个初学者

最佳答案

当我在cmd中运行此文件时,它什么都不做。


那是不对的


  它甚至不要求输入


您没有告诉它,您输入的命令是inputa.nextInt(),它仅读取输入,但不输出任何内容。


  如果我输入随机的东西然后按Enter,它会给我这个


inputa.nextInt()表示“将下一个输入读取为数字”。如果您输入的是随机数,则无法将其转换为数字。

您的代码还有更多问题:

if(b<20);


最后的分号表示如果b实际上小于20,则不执行任何操作

int a=5;
{
    System.out.println("Answer ="+a);
}


这里不需要括号,因为您已将变量a显式设置为5,所以应用程序到此为止,将始终显示Answer =5

10-06 11:08