我需要家庭作业方面的帮助。我需要编写一个程序,它将使用if else语句而不是显示的switch语句:
switch (day) {
case 1: case 2: case 3: case 4:
message = "regular workday";
break;
case 6: case 7:
message = "weekend";
break;
default:
message = "tgif";
}
我需要允许用户键入星期几,然后显示相应的输出。我还需要确保它测试输入的有效数字(1-7)。用户需要能够输入任意数量的不同日期,并在输入时使用值(-1)结束程序。
到目前为止,我有这个:
public class Question1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int day;
do {
System.out.println("What day of the week do you want to enter? When finished, please enter \"-1\".");
day = input.nextInt(); //User input assigned to variable day
if (day == 1 || day == 2 || day == 3 || day == 4) {
System.out.println("Regular workday");
}
else if (day == 6 || day == 7) {
System.out.println("Weekend");
}
else if (day == 5) {
System.out.println("TGIF");
}
else {
System.out.println("Invalid Month. Please try again or enter \"-1\" when finished.");
}
} //end do
while (day != -1); //Loops when input meets the criteria
}
}
问题:我遇到的问题是,当我输入-1结束程序时,它将其作为else并在我只是希望程序结束时打印else语句。
答案 0 :(得分:1)
尝试用else {
替换行else if (day != -1) {
。这将触发任何不满足先前条件的数字的分支,或者为-1
答案 1 :(得分:0)
您可以在else-block内重新测试输入并返回false和/或跳转到quitProgram-part - 然后再显示错误消息。