java基础算法中关于Scanner类中的nextLine()方法的疑问


package 例题;
import java.util.*;
public class ShiJian {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的身高:(cm)");
        double height = sc.nextDouble();
        System.out.println("请输入你的财产:(万)");
        double money = sc.nextDouble();
        System.out.println("你是否帅?:(是or否)");
        String face = sc.nextLine();
        if(height > 180 && money > 500 && face.equals("是")) {
            System.out.println("你是我的梦中情人!");
        }else if(height > 180 || money > 500 || face.equals("是")) {
            System.out.println("你也就凑合吧!");
        }else {
            System.out.println("癞蛤蟆想吃天鹅肉!");
        }
    }
}

1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读

img


把代码的sc.nextLine() 改成了 sc.next()
这样子,每次输入完一个数据之后,光标需要移动到下一个位置。程序就可以正常执行