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();