永发信息网

一道关于java的问题

答案:6  悬赏:80  手机版
解决时间 2021-06-04 06:23
  • 提问者网友:遁入空寂
  • 2021-06-04 03:22

我用java编写一道求1945到2006的闰年的问题

(闰年就是能被4整除且不能被100整除 或 能被400整除的年份)

首先编写代码如下:

class leapyear{
public static void main(String args[]){
int year=1945;
while(year<=2006){
if((year%4==0 && year%100!=0 )||(year%400==0))
System.out.println(year+"是闰年");



year++;
}

运行正常,然后我用if-else-if改写如下:

class leap{
public static void main(String args[]){
int year=1945;
boolean x;
while(year<=2006){
if (year%4!=0)
x=false;
else if(year%100!=0)
x=true;
else if(year%400==0)
x=true;
else
x=false;
year++;

if(x=true)
System.out.println(year+"是闰年");

}
}

编译后运行,得到的结果却是1946-2006每一年都成了闰年……

请问错误出在哪里?


}






}
}


最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-06-04 03:52
if(x=true)
改为
if(x==true)
全部回答
  • 1楼网友:往事隔山水
  • 2021-06-04 07:58

==和=是不一样的!!!

  • 2楼网友:春色三分
  • 2021-06-04 07:26
要双等于号
  • 3楼网友:醉吻情书
  • 2021-06-04 06:46

year++;放到if(x==true) System.out.println(year+"是闰年");

后面

  • 4楼网友:街头电车
  • 2021-06-04 05:22
刚才回答逻辑有错误- - 楼上二位的答案是正确的
  • 5楼网友:鸽屿
  • 2021-06-04 04:01

public static void main(String args[]) { int year=1945; boolean x; while(year<=2006){ if (year%4!=0) x=false; else if(year%100!=0) x=true; else if(year%400==0) x=true; else x=false; year++;

if(x){ System.out.println(year+"是闰年"); } else{ System.out.println(year+"是平年"); } } }

// 或者x=true改为x==true

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯