我编写了这段代码来计算有效的日期条目----并且在我试验过程中将switch语句嵌套在if语句中...在switch语句中...我进一步添加了if else语句。 ..
非常高兴..用它..直到我...好.. 编译 :(
它给出了50个错误..或者其他东西......那么这种类型的嵌套无效吗? 所有嵌套都有效吗?
代码如下
public DateFour(int m,int d,int y){
if (y<2011 && y>0){
year=y;
if{
switch(m){
case 1:case 3 case 5: case 7:case 8:case 10: case 12:
month=31;
if (day>0 && day<=31){
day=d;
System.out.println("The date today is:"+day"/"+month+"/"+year);
}
else{
System.out.println("invalid date");
}
break;
case 2:
month=28;
if (day>0 && day<=28){
day=d;
System.out.println("The date today is:"+day"/"+month+"/"+year);
}
else{
System.out.println("invalid date");
}
break;
case 4:
case 6:
case 9:
case 11:
month =30;
if (day>0 && day<=30){
day=d;
System.out.println("The date today is:"+day"/"+month+"/"+year);
}
else{
System.out.println("invalid date");
}
default:
System.out.println("Invalid month.");
}
}
}
else{
System.out.println("invalid input");
}
}
答案 0 :(得分:2)
if {
这不是Java中的有效构造。 if
什么?
case 1:case 3 case 5: case 7:case 8:case 10: case 12:
你错过了:
。请始终使用间距。
+
之后,day
所有打印报表都缺失{。}}。
否则,是的,你可以嵌套切换和if。它变得非常非常快速(正如你刚才注意到的那样)。
答案 1 :(得分:1)
我相信其他人已经确定了你的所有语法错误,你也可能有一个逻辑错误设置month =(当月的最大天数),应该设置为m。您已经在下一个声明中捕获了无效日期。
答案 2 :(得分:0)
是嵌套开关,如果可能的话。由于你的progrm已经被调试,我建议你更好地分配你的编码,因为这将帮助你更容易地调试它。