5

私は今夜​​Javaで少し学ぶことにしました、そして私はちょうど私が学んだことでいくつかのものを試しています。

私の質問は、ifステートメントで2つの刺し傷を真にする方法です。これが私がこれまでに持っているものです。

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

            }
}

私がもっと学び始める前に、これがいくつかのものを一緒に結びつけようとしているだけで意味がないように思われる場合は申し訳ありません。

今、私が通過するとき、それが終わるとき、それは私に2つの線を与えるか、それは私に両方を与えます。

4

4 に答える 4

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

}
于 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
}

質問の 2 番目の部分では、2 つのステートメントがあり、どちらもとブランチifの両方に出力されるため、最初のステートメントのいずれか、および2 番目のステートメントのいずれかをヒットします。 . おそらくあなたがやりたかったことは、次のようなものだったと思います。ifelseprintlnif printlnif

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

が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 に答える