退出Java程序

时间:2019-03-15 23:01:17

标签: java

我分配了一个用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);
}

2 个答案:

答案 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); 
}