我正在试用一个程序,下面是详细信息
写一个程序,取一个月份号,如果是夏天,冬天,雨季,就打印月份号-1
到12
。11月、12月、2月、夏季:三月、四月、五月、六月、七月,雨天:七月、八月、九月、十月
注意:你可以使用默认值来处理雨天,而冬季和夏季只需要2种情况
#解决方案1 -仅测试逻辑
package java_cls;
public class switch {
public static void main (String[] args) {
int month = 6;
switch (month) {
case 1:
System.out.println("January");
System.out.println("Winter");
break;
case 2:
System.out.println("February");
System.out.println("Winter");
break;
case 3:
System.out.println("March");
System.out.println("Summer");
break;
case 4:
System.out.println("April");
System.out.println("Summer");
break;
case 5:
System.out.println("May");
System.out.println("Summer");
break;
case 6:
System.out.println("June");
System.out.println("Summer");
break;
case 7:
System.out.println("July");
System.out.println("Summer");
break;
case 8:
System.out.println("August");
System.out.println("Rainy");
break;
case 9:
System.out.println("September");
System.out.println("Rainy");
break;
case 10:
System.out.println("October");
System.out.println("Rainy");
break;
case 11:
System.out.println("November");
System.out.println("Winter");
break;
case 12:
System.out.println("December");
System.out.println("Winter");
break;
}
}
}
#溶液2 -实际溶液
public class ifelse {
public static void main (String[] args) {
String summer = "March,April,May,June,July";
String winter = "November,December,January,February";
String rainy = "August,September,October";
int month = 1;
switch (summer) {
case 1:
System.out.printf("Summer");
break;
}
switch (winter) {
case 2:
System.out.printf("Winter");
break;
}
switch (rainy) {
case 3:
default:
}
}
}
从解决方案2我无法构建最终的解决方案,任何线索将是有帮助的。
2条答案
按热度按时间bfnvny8b1#
写一个程序,以采取一个月的数字和打印,如果它是夏季,冬季,雨季月份数字-1至12让我们假设冬季:11月、12月、2月夏季:3月、4月、5月、6月、7月多雨:七月、八月、九月、十月
注意:你可以使用默认值来处理雨天,而冬季和夏季只需要2种情况
使用
switch
-语句和字面上只有2
case标签是无法做到这一点的,但是Java允许对case标签进行分组,并将标签组与单个语句相关联。因此,正如*@Old Dog Programmer * 在评论中指出的,您可以创建
case
标签的2
组(针对"Winter"
和"Summer"
),并使用default
标签覆盖"Rainy"
季节。为此,您需要定义一个包含月份名称的数组,然后在
switch
中引用其元素。它看起来可能是:
我想这就是你必须要做的。
仅供参考,这里有几个更高级的选项。
∮ ∮ ∮
上面显示的
switch
-语句可以使用switch
-表达式以更简洁的方式编写(无需重复case
和使用break
语句):Map
另一个将月份与相应季节相关联的选项是使用
Map
,这种方法不需要诉诸条件语句。为了生成
Map
的代码,我使用了流API和收集器toMap()
。总体逻辑保持不变:Map包含有关
"Winter"
和"Summer"
的信息,使用Map.getOrDefault()
方法覆盖"Rainy"
季节的情况。下面是它可能的样子:
whlutmcx2#
因为问题的解决似乎不需要月份的名称,所以如果您真的只需要switch语句中的两个case和一个default,可以这样做
--