Java if语句字符串等

时间:2012-11-13 10:57:42

标签: java eclipse if-statement

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

我的问题是if 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 个答案:

答案 0 :(得分:1)

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

if(condition)需要括号。

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

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


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

}

答案 1 :(得分: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语句,这两个语句都在ifelse分支上打印,所以你要打一个第一个println 中的if个语句或第二个println的{​​{1}}个语句中的一个或另一个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");
}

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

我认为他想了解enums。喜欢

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

或此Best way to create enum of strings?