请看如下java小程序,分别是用Switch分支结构和for循环实现的计算某一日期是当年第几天的程序。如何报错?

一、importjava.util.Scanner;publicclassCD{publicstaticvoidmain(String[]args){Scannersc=... 一、import java.util.Scanner;
public class CD{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请依次输入年月日");
int year=sc.nextInt();
int month=sc.nextInt();
int day=sc.nextInt();
int num=0;
int a;
if((year%4==0&&year%100!=0)||year%400!=0){
a=1;
}else{
a=0;
}
int i;
for(i=1;i<month;i++){
if (i==2){
num=num+28+a;}
else if(((i<8)&&(i%2==1))||((i>7)&&(i%2==0))){
num=num+31;
}else{
num=num+30;
}
}num=num+day;
System.out.println("这天是第"+num+"天");
}
}
二、
import java.util.Scanner;
public class CountDate{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请依次输入年月日");
int year=sc.nextInt();
int month=sc.nextInt();
int day=sc.nextInt();
int num=0;
switch(month){
case 12:
num=30+num;
case 11:
num=31+num;
case 10:
num=30+num;
case 9:
num=31+num;
case 8:
num=31+num;
case 7:
num=30+num;
case 6:
num=31+num;
case 5:
num=30+num;
case 4:
num=31+num;
case 3:
num=28+num;
case 2:
num=31+num;
case 1:
num=day+num;
break;
default :
System.out.println("Eorror!");
break;
}
if((year%4==0&&year%100!=0)||year%400!=0)
{
num=num+1;}
System.out.println("这天是第"+num+"天");
}
}

import java.util.Scanner;
public class CountDate{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请依次输入年月日");
int year=sc.nextInt();
int month=sc.nextInt();
int day=sc.nextInt();
int num=0;
switch(month){
case 12:
num=30+num;
case 11:
num=31+num;
case 10:
num=30+num;
case 9:
num=31+num;
case 8:
num=31+num;
case 7:
num=30+num;
case 6:
num=31+num;
case 5:
num=30+num;
case 4:
num=31+num;
case 3:
num=28+num;
case 2:
num=31+num;
case 1:
num=day+num;
break;
default :
System.out.println("Eorror!");
break;
}
if((year%4==0&&year%100!=0)||year%400!=0)
{
num=num+1;}
System.out.println("这天是第"+num+"天");
}
}

请问这两个程序如何添加报错的语句?就是说,如果输入4月31 12月32,非闰年输入2月29号 等错误日期,要使程序能够识别,应当怎么添加代码是最简单最方便的??
展开
 我来答
蓝风水晶灵
2012-07-25 · TA获得超过934个赞
知道小有建树答主
回答量:731
采纳率:0%
帮助的人:431万
展开全部
自己建个判断语句或者用Date类。

把程序写的那么复杂,一个数组就能把你的一堆分支和循环替换掉。
追问
因为数组还没学习到。 刚刚学了三四天。
追答
import java.util.Scanner;
class MyDate
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("请依次输入年月日");
int year = sc.nextInt();
int month = sc.nextInt();
int day = sc.nextInt();

int num = day;
int[] date = null;
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
date = new int[]{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30};
}
else
{
date = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30};
}

if(day > date[month - 1] || day <= 0)
{
System.out.println(("日期有误!"));
}
else
{
for(int i = 0; i < month - 1; i++)
{
num += date[i];
}
System.out.println(("这天是第" + num + "天"));
}
}
}
wwwlanger100
2012-07-25 · 超过13用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:31.1万
展开全部
用if 如果是输出语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
btrbt
2012-07-25 · TA获得超过178个赞
知道答主
回答量:205
采纳率:0%
帮助的人:110万
展开全部
if(....) throw new Exception();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式