问一个Java题目的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 12:41:45
题目是这样的,1.根据输入的年份,判断是否为闰年 2.将判断的结果保存在布尔型变量isRn中 3.判断输入月份的天数.用多重if来做
import java.util.*;

public class Year {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print ("请输入年份:");
int age = input.nextInt();
System.out.print ("请输入月份: ");
int month = input.nextInt();
boolean isRn ;
if ((age%4==0 && age%100!=0)||(age%400==0)) {
isRn = true;
}else{
isRn = false;

if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
System.out.println(age + "年" + month + "月的天数是31天");
}else if (month == 2 && (isRn=true)) {
System.out.println(age + "年" + month + "月的天数是29天");
}else if (month == 2 && (isRn=false)) {
System.out.println(age + "年" + month + "月的天数是28天");
}else if (month == 4 || m

LZ其实你的程序思想没错误,只不过犯了两个最基本的小错
1、if ((age%4==0 && age%100!=0)||(age%400==0)) {
isRn = true;
}else{
isRn = false;
//你少了个大括号的后半部分。而你程序最后多了一个大括号的后半部分
改成:
}else{
isRn = false;
}

最后再删除一个大括号。

2.
}else if (month == 2 && (isRn=true)) {
System.out.println(age + "年" + month + "月的天数是29天");
}else if (month == 2 && (isRn=false)) {
System.out.println(age + "年" + month + "月的天数是28天");
}

注意看。。(isRn=true)和(isRn=false)你怎么能用单等号呢,一个=表示的是赋值符号不是表示相等。改成(isRn==true)和(isRn==false)
这样你的程序就没什么问题了

现在知道自己错哪里了吧,一定要注意细节啊

import java.util.*;

public class Year {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入年份:");
int age = input.nextInt();
System.out.print("请输入月份: ");
int month = input.nextInt();
boolean isRn = fals