import java.util.*;
public class Year
{
public static void main(String [] args)
{
String answer;
int year;
int month;
Scanner input = new Scanner(System.in);
System.out.print("请输入你要判断的年份:");
year = input.nextInt();
if((year%4==0 && year%100!=0) || year%400==0 )
System.out.println(year+"年是闰年");
else
{
System.out.println(year+"年是平年");
}
System.out.print("请输入你要判断的月份:");
month = input.nextInt();
if(month==1 && month==3 && month==5 && month==7
&& month==8 && month==10 && month==12)
{
System.out.println(month+"月有31天");
}
else if (month==4 && month==6 && month==9 && month==11)
{
System.out.println(month+"月有30天");
}
else if (month==2 && ((year%4==0 && year%100!=0) || year%400==0))
{
System.out.println(month+"月有29天");
}
else if (month==2 && !((year%4==0 && year%100!=0) || year%400==0))
{
System.out.println(month+"月有28天");
}
else
{
System.out.println("输入月份错误");
}
System.out.print("是否结束y/n:");
answer = input.next();
if(answer.equals("y"))
{
System.out.println("程序结束");
continue;
}
else
System.out.print("");
}while(!answer.equals("y"));
}
}为啥只有2月份那俩个else if管用,
我输入1月或是4月那俩个就直接打印出了最后一个输入错误了
那个30天的还有31天的else if怎么不起作用?
public class Year
{
public static void main(String [] args)
{
String answer;
int year;
int month;
Scanner input = new Scanner(System.in);
System.out.print("请输入你要判断的年份:");
year = input.nextInt();
if((year%4==0 && year%100!=0) || year%400==0 )
System.out.println(year+"年是闰年");
else
{
System.out.println(year+"年是平年");
}
System.out.print("请输入你要判断的月份:");
month = input.nextInt();
if(month==1 && month==3 && month==5 && month==7
&& month==8 && month==10 && month==12)
{
System.out.println(month+"月有31天");
}
else if (month==4 && month==6 && month==9 && month==11)
{
System.out.println(month+"月有30天");
}
else if (month==2 && ((year%4==0 && year%100!=0) || year%400==0))
{
System.out.println(month+"月有29天");
}
else if (month==2 && !((year%4==0 && year%100!=0) || year%400==0))
{
System.out.println(month+"月有28天");
}
else
{
System.out.println("输入月份错误");
}
System.out.print("是否结束y/n:");
answer = input.next();
if(answer.equals("y"))
{
System.out.println("程序结束");
continue;
}
else
System.out.print("");
}while(!answer.equals("y"));
}
}为啥只有2月份那俩个else if管用,
我输入1月或是4月那俩个就直接打印出了最后一个输入错误了
那个30天的还有31天的else if怎么不起作用?
解决方案 »
- POI 可以为Excel单元格设置不同的字体&颜色吗?如何设置?
- 请问一下大家这段代码由上面问题?为什么会报错?
- hibernate中ID要用Long类型
- 很重要的问题呀1
- javadoc中的html标签如何只当普通字串处理,不当作页面的标签??
- ***求助:用fpt文件传输协议,如何实现在局域中的文件传送??***
- 监听JTextArea是否改变用什么监听器?
- ◆发生了奇怪的问题∶怎么Tomcat自带的例子程序有的可以运行,有的却不能。(前天还都是好的)◆
- 请教,做的系统是面向所有操作系统,获得一个InputStream,如何处理?
- javascript有无类似Request.ServerVariables("HTTP_HOST")的方法取server名称?
- 命令行不能云行class文件
- 长连接的PreparedStatement执行完是否要关闭?
&& month==8 && month==10 && month==12)你用的是逻辑并"&&",所以你输入1时只满足month==1这个条件,而month==3后面的全不满足,结果这个if返回的值是false,最终当然不执行了。你应该用"||"而不是"&&"
应该用 ||
比如这里:
if(month==1 && month==3 && month==5 && month==7
&& month==8 && month==10 && month==12)
等
返回false,原因与上面分析的一样