为什么我输入错误的月份 还能给出星期几呢 输入错误提示的地方是不是放的不对
比如输入22月 我希望就提示一个 输入月份错误后就结束 为什么还会输出星期
//需求:键盘录入一个年月日,判断输出是周几。使用方法
import java.util.Scanner;
class Test_003 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("请输入月份:");
int x = sc.nextInt();
System.out.println("请输入日期:");
int y = sc.nextInt();
System.out.println("2016年"+x+"月"+y+"日是:");
System.out.println("星期"+week(x,y));
}//输入2016年任何一个月份日期 找到是星期几 已知 2016年1月1日是星期五
//方法 返回值是char 参数列表 int 月 int 日
//使用周循环
public static char week(int month, int day){
char c = ' ';
if (day<1||day>32) {
System.out.println("请输入正确的日期");
}
switch (month) {
default:
System.out.println("请输入正确的月份");
break; // 这里我想能最直接结束最好 但是我换return没用
case 1:
month = (month-1)*31; // 一月 转换为0天
break;
case 2:
month = (month-1)*31; // 二月 等于日加上一月的31天
break;
case 3:
month = (month-1)*31-2;// 31+29
break;
case 4:
month = (month-1)*31-2;// 31+29+31
break;
case 5:
month = (month-1)*31-3;
break;
case 6:
month = (month-1)*31-3;
break;
case 7:
month = (month-1)*31-4;
break;
case 8:
month = (month-1)*31-4;
break;
case 9:
month = (month-1)*31-4;
break;
case 10:
month = (month-1)*31-5;
break;
case 11:
month = (month-1)*31-5;
break;
case 12:
month = (month-1)*31-6;
break;
}
int a = month + day;
int b = a%7;
switch (b) {
case 1:
c = '五';
break;
case 2:
c = '六';
break;
case 3:
c = '日';
break;
case 4:
c = '一';
break;
case 5:
c = '二';
break;
case 6:
c = '三';
break;
case 7:
c = '四';
break;
}
return c;
}
}
|
|