0

タイトルが意味をなさない場合は申し訳ありません。基本的に、私は初心者であり、学習目的で、最初に性別を要求し、次に年齢を要求してアクセスを決定する基本的なプログラムを作成しようとしています。このプログラムは、テスト目的で性差別的です。とにかく、私が持っているものは次のとおりです。

    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");
            }
        }

今私がやろうとしているのは、ユーザーが「男性」または「女性」以外の何かを入力した場合の応答を作成することです。両方の if ステートメントが false の場合に else を使用してみましたが、うまくいきませんでした。

また、次のような別の if ステートメントを作成してみました。

if (!gender.equals ("男性") || ("女性"));

しかし、それもうまくいきません。

ありがとう

4

5 に答える 5

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
}
于 2013-07-18T21:58:05.117 に答える
1

これはうまくいきます:

if (gender.equals ("male") || gender.equals("female"))
{ 
   //input is okay, do something
} 
else 
{ 
  //input is not "male" or "female"  
}
于 2013-07-18T21:57:03.220 に答える
1

スイッチを使用することもできます:

switch(gender) {
  case "male": 

    break;

  case "female":

    break;

  default: //everything else
}

編集:文字列スイッチはJava 7以降で機能します

于 2013-07-18T22:00:40.640 に答える
0

これに対する最も迅速な解決策は、次を使用することです。

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

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

} else {

}
于 2013-07-18T22:08:30.777 に答える
0

ifelse if、を使用するようにプログラムを再構築することができますelse

例えば:

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.");
}

男性ブランチが実行されている場合は女性ブランチを実行できず、男性ブランチまたは女性ブランチのいずれかが実行されている場合は認識されていないブランチを実行できないため、これはもう少し簡潔です。

于 2013-07-18T22:01:27.007 に答える