java - 为什么 if 语句后无法输入信息?没有错误显示

标签 java java.util.scanner

如何让程序在 if 语句之后使用扫描器要求输入?

import java.util.Scanner;

public class App1 {

    public static void main(String[] Args) {

        Scanner keyboard = new Scanner(System.in);

        String gender;
        String fName;
        String lName;
        int age;
        String female = "F";
        String male = "M";
        String a = "";
        String gettingMarried = "y";
        String notGettingMarried = "n";

        System.out.println("What is your gender (M or F)");
        gender = keyboard.nextLine();
        System.out.println("What is your first name?");
        fName = keyboard.nextLine();
        System.out.println("What is your last name?");
        lName = keyboard.nextLine();
        System.out.println("Age:");
        age = keyboard.nextInt();
        System.out.println();

        if (gender.equals(female) && age >= 20) {
            System.out.println("Are you married " + fName + " (y or n?)");
            a = keyboard.nextLine();

        } else if (gender.equals(male) && age >= 20) {
            System.out.println("Are you married" + fName + "(y or n?)");
            a = keyboard.nextLine();
        }

    }
}

最佳答案

这是因为您使用的 nextInt() 只接受 int 值,而不是整行。当您再次尝试使用 keyboard.nextLine() 读取时,您捕获到的内容是您放置 int 的行的其余句子。

if 语句之前的 System.out.println(); 更改为 keyboard.nextLine();

编辑:如果您想要更详细的解释为什么必须在 keyboard.nextInt() 之后放置 keyboard.nextLine(); code>你可以引用我在另一个有同样问题的问题中的回答:Why isn't the scanner input working?

希望对你有帮助!

关于java - 为什么 if 语句后无法输入信息?没有错误显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32193702/

相关文章:

java - RabbitMQ 批量确认

java - 尝试访问 Tomcat 上已部署的 war 时获取 HTTP 状态 404

java - 在 Thymeleaf 中将 map 渲染到表中的 EL 语法是什么?

java - 扫描仪问题

java - 如何修复 "Exception in thread "main"java.util.NoSuchElementException : No line found"and other two errors?

java - 在 Java 中创建 .obj 文件

java - 如何匹配双斜杠之间的文本而不是网址?

java - 如何使用 java 使用扫描仪类用字符串回答问题?

java - 如何只使用一次扫描仪然后将其丢弃?

Java Swing 使用文本文件中的数据填充多个 JTextField