switch-statement - 如何在该程序中添加“小于”语句
问题描述
我的任务是创建一个程序,使用 switch 语句根据当月的确切天数打印月份名称。如果输入的天数与任何月份都不对应,程序还需要显示“错误”消息。我的代码实现了这两个目标。但是我想知道当用户输入小于 28 的数字时,是否有更短的方法来使用“小于”语句来获取“错误”消息
import java.util.Scanner;
public class months {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int numb_days = 0;
System.out.println("Enter the # of days");
numb_days = keyboard.nextInt();
//This program will print 'May' when you run it.
String monthName;
switch (numb_days) {
case 30: monthName = "April, June, September, November ";
break;
case 31: monthName = "January, March, May, July, August, November, October, December ";
break;
case 28: monthName = "February";
break;
case 29: monthName = "February (only on leap years)";
break;
case 1: monthName = "Unknown";
break;
case 2: monthName = "Unknown";
break;
case 3: monthName = "Unknown";
break;
case 4: monthName = "Unknown";
break;
case 5: monthName = "Unknown";
break;
case 6: monthName = "Unknown";
break;
case 7: monthName = "Unknown";
break;
case 8: monthName = "Unknown";
break;
case 9: monthName = "Unknown";
break;
case 10: monthName = "Unknown";
break;
case 11: monthName = "Unknown";
break;
case 12: monthName = "Unknown";
break;
case 13: monthName = "Unknown";
break;
case 14: monthName = "Unknown";
break;
case 15: monthName = "Unknown";
break;
case 16: monthName = "Unknown";
break;
case 17: monthName = "Unknown";
break;
case 18: monthName = "Unknown";
break;
case 19: monthName = "Unknown";
break;
case 20: monthName = "Unknown";
break;
case 21: monthName = "Unknown";
break;
case 22: monthName = "Unknown";
break;
case 23: monthName = "Unknown";
break;
case 24: monthName = "Unknown";
break;
case 25: monthName = "Unknown";
break;
case 26: monthName = "Unknown";
break;
case 27: monthName = "Unknown";
break;
default: monthName = "Unknown";
break;
}
System.out.println(monthName);
}
}
解决方案
默认语句足以处理 28-31 的特定情况未捕获的所有其他情况。因此,您可以删除所有其他案例 1-27。
如果您需要使用小于语句,您可以在使用 switch 语句之前使用它:
if (numb_days < 28) {
month_name = "unknown";
} else {
// Switch statement goes here
}
推荐阅读
- javascript - 单击按钮时带有按钮的可单击表格行同时触发
- emulation - emu8086 反汇编代码没有出现,我错过了什么吗?
- reactjs - 为什么我应该使用构造函数和超级函数来使用道具?
- angular - 使用 Asp.Net Boilerplate 5.5.0.0 仅允许每个用户 1 个角色
- c++ - std::shared_ptr 如何被释放?
- python - 类似的 pyspark 逻辑在数据框中返回不同的行数
- android - 在 Android Studio(Kotlin)中单击按钮时更改 TextView 文本
- javascript - 拖放图像和 CSS
- lua - 获取表中表的值
- git - 如何在 git commit 中打印更改的行?