如何在Java的Scanner工具中将输入放在下一行

3

我有一个与Scanner工具有关的基本Java问题。 假设我有一个简单的程序,它接受用户输入并将其存储在变量中。 我的问题是,当我运行要求多个输入的程序时,光标会从问题的开头开始,而不是在后面。 我的代码如下:

public class question3 {

    public static void main(String[] args){

       Scanner s = new Scanner(System.in);
       System.out.println("Enter the first number:");
       Float a = s.nextFloat();
       System.out.println("Enter the second number:");
       Float b = s.nextFloat();
       System.out.println("Sum = " + (a+b));
       System.out.println("Difference = " + (a-b));
       System.out.println("Product = " + (a*b));


       }
}

当我运行这个程序时,它会看起来像输入第一个数字,然后我输入数字,接着是|输入第二个数字。"|"表示光标所在位置。当我输入时,它会显示在下面,但可能会让用户感到困惑,所以我想知道解决方案是什么。
这是一个IDE问题,因为代码没有其他问题。

这是IDE的问题。你的程序看起来完美无缺。添加\n可能会使它更好,但光标闪烁是IDE的事情。 - VictorCreator
@Vijairam 是的,我认为是这样。我没有看到其他问题或解决方案。谢谢。 - VrnRap
3个回答

2

将每个输入之前的println(String)更改为print(String)。因此,它看起来应该像这样:

public class question3{

    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        System.out.print("Enter the first number:");
        Float a = s.nextFloat();
        System.out.print("Enter the second number:");
        Float b = s.nextFloat();
        System.out.println("Sum = " + (a+b));
        System.out.println("Difference = " + (a-b));
        System.out.println("Product = " + (a*b));


    }
}

此外,需要注意的是,您应该为变量使用适当的命名约定。例如对于Scanner,您应该将其命名为readerinput,以表示其功能。同样的想法也适用于其他变量。此外,类名以大写字母开头。
下面是最终结果的示例图: enter image description here

s.nextFloat(); 会为你创建一个新行吗? - ug_
从图片上来看(使用的是IntelliJ),看起来是这样。 - Josh M
@JoshM 感谢您的回复,但我的问题似乎与光标闪烁有关,程序将数字放在正确的位置,但在显示器上它显示光标在问题开头闪烁。你能想象吗?还是我应该拍张照片给你看? - VrnRap
@VrnRap 我认为这取决于你使用的集成开发环境。当然,可以通过更新你的问题并附上一张图片来更清楚地表达。听起来你正在使用Dr. Java,如果是这样的话,我相信你只需点击通常输入的位置,插入符号就会移动到那里。 - Josh M
@JoshM 是的,当我按下或输入时,它确实会移动到正确的位置,只是一个视觉问题。我想这没什么大不了的。 - VrnRap

2

System.out.println会打印出字符串并换行,所以你的输入会被放在新的一行。尝试修改为

System.out.print("Enter the first number:");
Float a = s.nextFloat();
System.out.println();
System.out.print("Enter the second number:");
Float b = s.nextFloat();
System.out.println();

它基本上是同样的问题,因为这不是程序的问题。也许是因为Eclipse,我不知道,但光标仍然在不同的位置闪烁,而不是在它应该在的地方。 - VrnRap

1
这可以节省您几秒钟的时间,只需输入几行代码:
System.out.print("Enter the first number:");
Float a = s.nextFloat();
System.out.print("\nEnter the second number:");
Float b = s.nextFloat();
System.out.println("\nSum = " + (a+b)
                   +"\nDifference = " + (a-b)
                   +"\nProduct = " + (a*b));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接