只是移動,要求對性別的if
分支對應於可接受的年齡裏面的代碼:
public static void main (String[] args) {
final int DRINKING_AGE = 21;
final int ADULT = 18;
final String LEGAL_DRINKING_AGE_MESSAGE = "You are legally able to drink";
int age = Integer.parseInt(JOptionPane.showInputDialog("Enter Your Age"));
boolean ageCheck = age >0 && age <=100;
//check to see if the age is within range
if (ageCheck) {
String gender = JOptionPane.showInputDialog("Enter Your Gender (F/M)");
boolean genderCheck = gender.equalsIgnoreCase("M") || gender.equalsIgnoreCase("F");
//check to see if the user entered M or F
if (genderCheck) {
//if we pass both checks, then do the rest of the logic
JOptionPane.showMessageDialog(null,"OUTPUT: Your age is " + age + " and Gender is " + gender);
} else {
//Write an error for invalid Gender
JOptionPane.showMessageDialog(null,"Error: Gender must be F or M") ;
}
} else {
//Write an error for invalid Age
JOptionPane.showMessageDialog(null,"Error: Age must be between 0 -100") ;
}
}
如果邏輯得到任何比較複雜,我建議重構隔離將年齡和性別分爲不同方法的邏輯。 (即使是這樣的代碼我也會這麼做,但這超出了你所問的範圍。)