为什么它不接受我的用户输入字符串:name


import java.util.Scanner;
public class My_Lab02
{
   public static void main(String args[])
   {
   int a, b, c;
   String name, greeting;
   Scanner input = new Scanner(System.in);
   // 1st Part
   System.out.println("Please enter two integers: ");
   a = input.nextInt();
   b = input.nextInt();
   System.out.println("***  "" + a + "/" + b + "=" + a/b + """);
   // 2nd Part
   System.out.println("Enter your name: ");
   name = input.nextLine();
   greeting = "Hello, ";
   System.out.println(greeting + name);   
   }
}

一旦我运行程序,第一部分的代码与int a,b工作正常,但一旦我到代码的第二部分,它只是打印出Hello,程序结束,但是!如果我注释掉代码的第一部分,代码的第二部分就会正常工作,并允许您在一个字符串中输入姓和名。然后输出"Hello, Joe Bob"

我不明白代码的第一部分是如何影响我的代码的第二部分。

下面是程序错误运行的示例:

Please enter two integers: 
30
4
***  "30/4=7"
Enter your name: 
Hello, 

最后的代码应该是这样的:

Example run 2:
Enter two integers: 15 4
*** “15/ 4 = 3”
Enter your name: Tom Cruise
Hello, Tom Cruise.
The first letter in your name is T!
Your name contains 10 characters.
HELLO, TOM CRUISE

但是我需要先解决第一个bug,然后才能完成作业。

谢谢你的帮助!

b = input.nextInt();不使用下一个换行符。所以当你调用

input.nextLine()

得到一个换行符。你可以直接读。

input.nextLine(); // <-- by adding this
System.out.println("Enter your name: ");
name = input.nextLine();

最新更新