5

我决定今晚尝试在 java 中学习一点,我刚刚尝试了一些我学到的东西。

我的问题是在一个 if 语句中,我如何让两个刺痛成为真实。这是我到目前为止所拥有的。

if ("male".equals(gender)) && ("brendan".equals(name))

我很确定的问题是 && 但我不确定。

编辑编辑编辑。

这解决了部分问题。
if("male".equals(gender) && "Brendan".equals(name))
这也是

if (("male".equals(gender)) && ("brendan".equals(name)))

现在我将发布整个事情我现在有另一个问题,你可能需要看到整个事情。

import java.util.Scanner;

public class my_input_and_if_statements 
{
    public static void main (String args[])
{
    Scanner jonks = new Scanner(System.in);
    String name, gender, answer;
    System.out.println("What is your name?");
    name = jonks.next();
    System.out.print("Hello ");
    System.out.print( name);
    System.out.println(" are you male or female?");
    gender = jonks.next();

        if (("male".equals(gender)) && ("brendan".equals(name)))            
            {
            System.out.println("blah blah");
            }

        else
            {
            System.out.println(" Welcome to one of my first java applications. I hope you like it");
            }

        if (("female".equals(gender)) && ("nicole".equals(name))) 
            {
            System.out.println("blah blah 2");
            }
        else
            {
            System.out.println(" Welcome to one of my first java applications. I hope you like it");
            }

            }
}

抱歉,如果在我开始尝试学习更多内容之前尝试将一些东西联系在一起似乎毫无意义。

现在,当我完成它时,它会给我两条线,或者它给我两条线。

4

4 回答 4

1
if (("male".equals(gender)) && ("brendan".equals(name)))
   ^                                                   ^

if(condition)需要括号。

对于您的多重比较,您可能有男性或女性,而不是两者,因此您可以使用嵌套if..else结构,

否则,您将不必要地对每个 name进行男性/女性评估。以下对我来说似乎更自然


if ("male".equals(gender)){
    if("brendan".equals(name)){
        System.out.println("right");   
    }else{
        System.out.println("wrong wrong");  
    }
    //add more cases here
}else{
    //definitely female

}
于 2012-11-13T11:00:06.257 回答
1

我认为问题是你的括号。

if 语句的形式为if(condition),其中condition是一些布尔表达式。在这种情况下,您希望条件为"male".equals(gender) && "Brendan".equals(name),因此您的完整语句应如下所示:

if("male".equals(gender) && "Brendan".equals(name)) {
    //Foo Blah blah
}
else {
    //Barr fuzz fuzz
}

对于你问题的第二部分,你有两个if陈述,这两个陈述都印在 theifelse分支上,所以你要打println第一个或另一个陈述中的一个if 其他println第二个陈述if. 我认为您可能想要做的事情如下:

if(gender.equals("male") && name.equals("Brendan")) {
    println("Brendan's Message");
}
else if(gender.equals("female") && name.equals("Nicole")) {
    println("Nicole's Message");
}
else {
    println("Anybody's Message");
}
于 2012-11-13T11:01:36.707 回答
1

一个缺少(和多余的括号。

if ("male".equals(gender) && "brendan".equals(name))
于 2012-11-13T11:02:56.827 回答
0

我认为他想了解枚举。像

 public enum Gender
 {
      MALE = "Male";
      FEMALE = "Female";
 }

还是这种创建字符串枚举的最佳方法?

于 2012-11-13T11:19:12.717 回答