比如我想用Boolean来计算哪一些年是闰年 哪些不是
我是java新手
我是这么写的
int year=1999;
for(int nyear=year-10;nyear<=year+10;year++)
怎么样才能用boolean来计算上面的所有nyear数值为 true 或者是 false
我试过用 if else语句 但是if else计算出来的Boolean是不能被赋值的
我无法使用它
求大神解答一下我的困惑
是哪里出问题了
首先你这for循环写的有问题吧,你应该是求99年前后二十年吧,但是循却是year++,这就造成第一个输出是1989第二个就直接跳到2000了,不知道是你有意为之还是怎样,
其次是你是要给每一年赋值对吧,可以在上面定义一个map,每循环一年,做一个判断是否为闰年的操作得出true或false并把年份和boolean值一起存进map,最后遍历map,
就可以看到这99年前后二十年的闰年结果
很早之前写的判断闰年平年的程序,希望能给你一些提示
public class Test1 {
public static void main(String[] args) {
System.out.println("输入年号:");
int y = new Scanner(System.in).nextInt();
//把y的值,传递到f()方法进行运算
//再获得该方法的返回值
boolean b = f(y);
if(b){
System.out.println("闰年");
}else{
System.out.println("平年");
}
}
/*
* 对接收的参数y的值进行判断
* 判断它是否是闰年
*
* 闰年:
* 能被4整除,不能被100整除
* 能被400整除
*
*/
static boolean f(int y) {
//定义布尔值变量,保存结果
boolean r = false;
/*
* 如果y能被4整除
* 进一步判断,不能被100整除
*
* if(y%4 == 0){
* if(y%100 != 0){
* r = true;
* }
* }
* 如果能被400整除
* if(y%400 == 0){
* r = true;
* }
*
* 返回r的值
* return r;
*
*/
if(y%4 == 0 && y%100 != 0 || y%400 == 0){
r = true;
}
return r;
}
}
是nyear++
不是year++