使用带有 if-else 语句的 scan.nextLine 的结果 -- Java

Using result of a scan.nextLine with an if-else statement -- Java

我正在尝试制作一个 BAC(血液酒精含量)计算器,该计算器从用户那里获取输入并让他们知道他们是否有资格赢得... DUI 大奖!我正在尝试使用 Scanner 来确定此人是男性还是女性,然后根据用户输入的内容使用 if-then 语句……但我真的不知道该怎么做。这应该是一个非常简单的修复,但这是我所拥有的以及我想用注释掉的 if-then 语句做的事情。

import java.util.*;

public class Proj2_Mazzone
{
    public static void main (String[] args)
    {

        Scanner scan = new Scanner(System.in);

        String gender;
        int D, W, H, age;

...

System.out.print("Enter M if you're a male, or F if you're a female: ");
            gender = scan.nextLine();

            /*if(gender = M)
                {
                    System.out.println("You're a man!");
                }
                else if(gender = F)
                    {
                        System.out.println("You're a woman!");
                    }
            */

这样使用:

if(gender.equals("M"))
                {
                    System.out.println("You're a man!");
                }
                else if(gender.equals("F"))
                    {
                        System.out.println("You're a woman!");
                    }

注意: = 是赋值运算符而不是条件运算符。

您可以在 link.
下面看到 java 中的相等条件是如何工作的 http://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/
What's the difference between ".equals" and "=="?

比较 String 时,您使用 .equals().equalsIgnoreCase()。喜欢,

gender = scan.nextLine();
if (gender.equalsIgnoreCase("m")) {
    System.out.println("You're a man!");
} else if (gender.equalsIgnoreCase("f")) {
    System.out.println("You're a woman!");
}

但是,您也可以将第一个字符与

if (Character.toUpperCase(gender.charAt(0)) == 'M') {
    System.out.println("You're a man!");
} else if (Character.toUpperCase(gender.charAt(0)) == 'F') {
    System.out.println("You're a woman!");
}

注意,那是==(不是赋值的=)。