各位大侠帮我看看这个编程哪里出问题了: 30

//输入年月份,控制台显示该月份的月视图importjava.util.Scanner;publicclassTest12{publicstaticvoidmain(St... //输入年月份,控制台显示该月份的月视图
import java.util.Scanner;
public class Test12{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("——欢迎使用万年历——");
System.out.println("请输入您要查询的年份:");
int year=input.nextInt();
System.out.println("请输入您要查询的月份:");
int month=input.nextInt();
String flag=input.next();
int sum=0;
while(flag.equals("Y")){
if(year<1900||month<1||month>=13){
System.out.println("对不起,您输入的年份或者月份有误,请重新输入......");
}
else{
System.out.println("\t"+"【"+year+"年"+month+"月】");
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}
else{
sum+=365;
}
}
for(int i=1;i<month;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}
else if(i==4||i==6||i==9||i==11){
sum+=30;
}
else{
sum+=31;
}
}
else if(i==2){
sum+=28;
}
else if(i==4||i==6||i==9||i==11){
sum+=30;
}
else{
sum+=31;
}
}
sum+=1;
int firstday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=firstday;i++){
System.out.println("\t");
}
int days=0;
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){
days+=29;
}
else{
if(month==4||month==6||month==9||month==11){
days+=30;
}
else{
days+=31;
}
}
}
else if(month==2){
days+=28;
}
else{
if(month==4||month==6||month==9||month==11){
days+=30;
}
else{
days+=31;
}
}
for(int i=1;i<=days;i++){
if(sum%7==6){
System.out.println(i+"\n");
}
else{
System.out.println(i+"\t");
}
sum++;
}
}
System.out.println("\n\n是否继续查询?\n(Y/N)");
}
System.out.println("——万年历已退出——");
}
}
展开
 我来答
匿名用户
2013-02-03
展开全部
代码好像没错,我也看不仔细,你能把错误提示,和行号提供下吗,你在查下是否是逻辑问题,或者括号是否完整,你用了多重和嵌套if哪里面最容易出问题,打个断点调试下吧,不然提供下报错提示。我家里电脑没转工具不然你调试下,
追问
终于找到原因了。循环嵌套错误了。不过还是谢谢你。
追答
恭喜你成功解决难得,获得更大的进步。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式