If-Else计划一周中的几天

时间:2017-10-03 00:25:39

标签: java

我需要家庭作业方面的帮助。我需要编写一个程序,它将使用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语句。

2 个答案:

答案 0 :(得分:1)

尝试用else {替换行else if (day != -1) {。这将触发任何不满足先前条件的数字的分支,或者为-1

答案 1 :(得分:0)

您可以在else-block内重新测试输入并返回false和/或跳转到quitProgram-part - 然后再显示错误消息。