我是自学Java的,刚刚写了一个代码,输出那一年的哪一月,有多少天!各位帮我看一次,哪里有错??

给出已知条件:可以被4整除的年份,不能被100整除的年份的2月是闰月,可以被400整除的年份的二月是闰月!inta=(int)(3450*Math.random()+1)... 给出已知条件:
可以被4整除的年份,不能被100整除的年份的2月是闰月,
可以被400整除的年份的二月是闰月!
int a=(int)(3450*Math.random()+1);
int b=(int)(12*Math.random()+1);
if(a%4==0&&a%100!=0){
switch(a){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(a+"年"+b+"月有31天。");
break;
case 2:
System.out.println(a+"年"+b+"月有28天。");
default:
System.out.println(a+"年"+b+"月有30天");
}
}
else if(a%400==0){
switch(a){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(a+"年"+b+"月有31天。");
break;
case 2:
System.out.println(a+"年"+b+"月有28天。");
default:
System.out.println(a+"年"+b+"月有30天");
}
}
else{
switch(a){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(a+"年"+b+"月有31天。");
break;
case 2:
System.out.println(a+"年"+b+"月有29天。");
default:
System.out.println(a+"年"+b+"月有30天");
}
}
找到的错误:
1:switch的值没有把a换为b;
2:在Switch的句子里,当b等于2时,下面没有加bracket;
还有没有?
展开
 我来答
百毒千毒
2018-05-03 · TA获得超过4737个赞
知道大有可为答主
回答量:2504
采纳率:88%
帮助的人:665万
展开全部
//你目的就随机一个年份,和随机一个月份,然后看有多少天,整理了一下你的代码;
public class Test {
public static void main(String[] args) {
int a = (int) (3450 * Math.random() + 1),day = 31;;// 随机年份!
int b = (int) (12 * Math.random() + 1);// 随机月份
boolean flag = jud(a);// 判断是否闰年;
String str = flag ? "是闰年" : "是平年";
switch (b) {// 判断月份有几天
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = flag ? 29 : 28;
break;
}
System.out.println(a+""+str+"..."+b+"月有"+day+"天;");
}
private static boolean jud(int a) {//闰年判断:条件
return a % 400 == 0 || (a % 4 == 0 && a % 100 != 0);
}
}

更多追问追答
追问
初学者,第三天。你写的有些看不懂!!
追答
哦,只是简写你的代码而已,都一样! 带有问号的是if判断的简写,
就怕你看不懂,每个地方都写着中文注释,应该不是很难吧!
就像你去判断,13,5,7,8,10,12,一样,你可以尝试反着去判断,4,6,9,11,对么,这样代码少判断了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式