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 语句中使用 && 起作用。我预计它需要||,因为如果输入匹配两个性别字符串中的任何一个,我们希望它继续。我知道 && 只有在两个参数都为真时才允许代码继续。
TL;博士
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