我分配了一个用Java编写Health Analyzer Application程序的任务。 这是第一步:
用户必须输入Man(大写或小写或小写)或Woman(大写或小写)作为性别,或退出(退出(大写或小写))以退出程序。如果用户输入的性别无法识别的单词(“不,男人,女人或退出”),则程序显示“错误选择性别! ”,然后退出。
这就是我一直在努力的。我唯一缺少的是,它应该显示“谢谢您使用此应用程序”时显示为“ Exit”(性别选择错误)
System.out.println("------------------------------------------------------------\n" +
" Welcome to Health Analyzer\n" +
"------------------------------------------------------------");
// SELECTING GENDER
Scanner scan = new Scanner(System.in);
System.out.println("\t Select Gender\n" +
"\t Enter \"Man\" to calclate average calorie requirements for man\n" +
"\t Enter \"Woman\" to calclate average calorie requirements for Woman\n" +
"\t Enter \"Exit\" for Exiting the Program\n" +
"Enter the Choice: ");
String gender;
gender = scan.nextLine().toLowerCase();
String man = "Man";
String woman = "Woman";
String exit = "Exit";
if (! (gender.equals(man)) || (gender.equals(woman))) {
System.out.println("\t Wrong Selection of gender!");
System.exit(0); }
else if (gender.equals(exit)) {
System.out.println("\t\t *** Thank you for using this Application ***");
System.exit(0);
}
答案 0 :(得分:1)
您的逻辑在这里有点相反。
当您输入exit时-第一个if(
if (! (gender.equals(man)) || (gender.equals(woman))) {
)将评估为真,因为它既不是女人也不是男人。
您可能应该进行真实的评估。
if (man.equals(gender) || woman.equals(gender)) {
doSomeStuffHere
}
else if (exit.equals(gender)) {
exitProgramHere
}
else {
printWrongGenderHere
}
还可以使用equalsIgnoreCase
而不是使用equals答案 1 :(得分:1)
由于要在输入字符串上使用toLowerCase转换为小写形式。您应该只将字符串与小写字母进行比较。
gender = scan.nextLine().toLowerCase();
String man = "man";
String woman = "woman";
String exit = "exit";
否则,您可以使用equalsIgnoreCase忽略大小写。
if (gender.equals(exit)) {
System.out.println("\t\t *** Thank you for using this Application ***");
System.exit(0);
}
else if (! (gender.equals(man) || gender.equals(woman)) ) {
System.out.println("\t Wrong Selection of gender!");
System.exit(0);
}