import javax.swing.JOptionPane;
public class Insurance {
final static String INPUT_GENDER = "Please enter your gender: (Male or Female)";
final static String MALE = "male";
final static String FEMALE = "female";
static String gender;
public static void main(String args[])
{
do
{
gender = JOptionPane.showInputDialog(INPUT_GENDER).toLowerCase();
System.out.println(gender);
}
while(!gender.equals(MALE) && !gender.equals(FEMALE));
}
}
上記のコードはリビジョンの割り当ての始まりですが、理解できないものに出くわしました。ユーザーは性別を「男性」または「女性」として入力するように求められ、入力がこれらの入力のいずれかを満たす場合にのみ、プログラムを続行する必要があります。これは、入力を MALE および FEMALE の最終的な文字列と比較することによって行われます。
私が理解していないのは、 while ステートメントで && を使用してのみ機能する理由です。入力が 2 つの性別文字列のいずれかに一致する場合に続行する必要があるため、|| が必要になると予想していました。&& は、両方の引数が true の場合にのみコードの続行を許可する必要があることを理解しました。
TL;DR
while(!gender.equals(MALE) && !gender.equals(FEMALE)); //This works
while(!gender.equals(MALE) || !gender.equals(FEMALE)); //This does not work
while(gender.equals(MALE) || gender.equals(FEMALE)); //This does not work