Java 每周几天的If Else计划

Java 每周几天的If Else计划,java,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"; } 我需要允许用户输入一周中的哪一天,然后显示相应

我需要帮助做家庭作业。我需要编写一个使用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语句。

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

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

那么,您的代码有什么问题吗?是否有错误?输出不正确?是,一定要告诉我们出了什么问题。还要修复显示“无效月份”的部分.:)尝试将
else
替换为
else if
,并包含一个条件,当输入为-1时,该条件将计算为false。结果表明-1实际上不是1、2、3、4、5、6甚至7!请不要破坏您的帖子。通过在Stack Exchange网络上发布,您已授予SE分发该内容的不可撤销权利(根据)。根据SE政策,任何故意破坏行为都将被恢复。如果您想解除此帖子与您帐户的关联,请参阅