【问题标题】:Convert the following switch statement into if-else statements:将以下 switch 语句转换为 if-else 语句:
【发布时间】:2020-10-06 06:33:30
【问题描述】:
int month = input.nextInt();
switch (month) { 
    case 1:
        System.out.println(“January”);
    case 2:
        System.out.println(“February”); break;
    case 3:
        System.out.println(“March”); break;
    case 4:
        System.out.println(“April”);
    case 5:
        System.out.println(“May”); break;
    default:
        System.out.println(“Invalid”); break;
}

如何将其从switch 语句转换为if-else 语句?

休息是故意的,这是大学作业。

【问题讨论】:

  • ifelse if 处理每个case... default 表示else
  • 首先,您选择一种语言 - javascript 不是 java(您的代码是 Java,以防您不确定)。我删除了 javascript 标记,但如果这不是您想要的,您可以进行编辑(但请务必解释原因)。
  • 为什么缺少一些break 语句?是故意的吗?
  • 另外,请解释一下究竟有什么不清楚的地方——你已经尝试过了吗?
  • @NinaScholz 可能是他的老师/教授在他的家庭作业/作业中设置的一些陷阱。

标签: java if-statement netbeans switch-statement


【解决方案1】:

在伪代码中,您可以在一个语句中检查所有连接的部分,而无需 break 语句,并检查另一个嵌套 if 语句中的值。

if 1 or 2
    if 1 print january
    print february
else if 3 print march
else if 4 or 5 
    if 4 print april
    print may
else print invalid

【讨论】:

  • 家庭作业问题的好答案,帮助解决核心问题,而不仅仅是提供教师可接受的解决方案。
【解决方案2】:
int month = input.nextInt();
if(month==1){
    System.out.println(“January”);
    System.out.println(“February”);
}else if(month==2){
    System.out.println(“February”);
}

您应该能够在下一个案例中重复此操作。下次请尝试清理您的代码,如果我们有时间回答您至少应该及时询问,谢谢

【讨论】:

  • 根据OP的代码,1的月份也应该打印February
  • 哦,我忘记了,只需在 1 月的下面添加一个 System.out.println("February"); 就可以了
  • 那会引入代码副本,我猜这不会让老师满意。