Java:多个ifs之后或比较两个字符串

时间:2013-07-18 21:55:46

标签: java

很抱歉,如果标题没有意义。基本上,我是一个菜鸟,为了学习目的,我正在尝试创建一个基本程序,首先要求性别,然后确定年龄以确定访问权限。该程序是性别歧视的,用于测试目的。无论如何,继承人我所拥有的:

    System.out.println("What is your Gender?");
    String gender = input.nextLine();
        if (gender.equals ("male")){
            System.out.println("What is your age?");
            int agem = input.nextInt();
            if (agem >= 21 && agem < 65){
                System.out.println("Access Granted");
            }else{
                System.out.println("Access Denied");
            }
        }
        if (gender.equals ("female")){
            System.out.println("What is your age?");
            int agef = input.nextInt();
            if (agef >=18 && agef < 60){
                System.out.println("Access Granted");
            }else{
                System.out.println("Access Denied");
            }
        }

现在我要做的是创建一个响应,以防用户输入“男性”或“女性”以外的内容。我已经尝试过使用else,因为if语句都是false但是没有用。

我还尝试创建另一个if语句,如下所示:

if(!gender.equals(“male”)||(“female”));

但这也不起作用。

由于

5 个答案:

答案 0 :(得分:2)

作为即时解决方案,您需要在最后添加以下条件

if (!(gender.equals ("male") || gender.equals("female")));

if (!gender.equals ("male") && !gender.equals("female"));

但为避免不必要的条件检查,整个条件应如下所示:

        if (gender.equals ("male")){
            //
        }
        else if (gender.equals ("female")){
            //
        } else {

        }

从java 7开始,你也可以使用字符串库switch语句:

switch(value){
    case "male":
        //todo
        break;
    case "female"
        //todo
        break;
    default:
        //todo
}

答案 1 :(得分:1)

这将有效:

if (gender.equals ("male") || gender.equals("female"))
{ 
   //input is okay, do something
} 
else 
{ 
  //input is not "male" or "female"  
}

答案 2 :(得分:1)

你也可以使用开关:

switch(gender) {
  case "male": 

    break;

  case "female":

    break;

  default: //everything else
}

编辑:字符串开关自java 7开始工作

答案 3 :(得分:0)

您可能需要重新构建程序以使用ifelse ifelse

例如:

System.out.println("What is your Gender?");
String gender = input.nextLine();
if (gender.equals ("male")){
    System.out.println("What is your age?");
    int agem = input.nextInt();
    if (agem >= 21 && agem < 65){
        System.out.println("Access Granted");
    }else{
        System.out.println("Access Denied");
    }
} else if (gender.equals ("female")){
    System.out.println("What is your age?");
    int agef = input.nextInt();
    if (agef >=18 && agef < 60){
        System.out.println("Access Granted");
    }else{
        System.out.println("Access Denied");
    }
} else {
    System.out.println("Unrecognized input.");
}

这有点简洁,因为如果 male 分支已被执行,它就不可能执行 female 分支,并且它不可能如果 male female 分支已执行,则执行无法识别的分支。

答案 4 :(得分:0)

最快的解决方案是使用:

if (gender.equals("Male")) {

} else if (gender.equals("Female")) {

} else {

}