代码不扫描第二个字符串形式的用户。它只打印'Hello'第二个字符串未打印。
package online_questions;
import java.util.Scanner;
public class Add {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int i = 4;
double d = 4.0;
String s = "Hello ";
int a = scan.nextInt();
double b = scan.nextDouble();
String c = scan.nextLine();
System.out.println(i+a);
System.out.println(d+b);
System.out.println(s + c);
}
}
答案 0 :(得分:0)
阅读double b
后,缓冲区中会出现换行符。 nexLine()
会读取换行符'\0
,这就是为什么你的空字符串只需在阅读完毕后添加scan.nextLine();
答案 1 :(得分:0)
您需要在nextLine
之后致电nextDouble
。
double b = scan.nextDouble();
scan.nextLine();
String c = scan.nextLine();
答案 2 :(得分:0)
后
double b = scan.nextDouble();
添加
scan.nextLine();
方法nextInt
nextDouble
等不会自动移动到下一行。所以你需要明确地称呼它们。