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

时间:2014-08-21 02:01:55

标签: java

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,程序结束,但!如果我注释掉代码的第一部分,代码的第二部分将按照它应该如何工作,并允许您在一个字符串中输入名字和姓氏。然后打印出#34; 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

但在完成作业之前,我需要解决第一个错误。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

b = input.nextInt();不会消耗下一个换行符。所以当你打电话时

input.nextLine()

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

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