k[]没有初始化
int[] k = new int[3];
而且你这程序有明显逻辑错误
public class dijitian {
public static void main(String[] args) {
dijitian d = new dijitian();
d.shuru();
d.panduan();
}
int k[] = new int[3]; //初始化数组
int months1[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int months2[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Scanner scan = new Scanner(System.in);
public void shuru() {
//去掉j[],完全无用
for (int i = 0; i < 3; i++) {
k[i] = scan.nextInt();
}
scan.close(); //输入流要关闭
}
public void panduan() {
int sum = 0;
for (int i = 0; i < k[1] - 1; i++) { //计算输入月份之前的整月天数之和
if (k[0] % 4 == 0 && k[0] % 100 != 0 || k[0] % 400 == 0) {
sum = sum + months2[i]; //闰年是month2,你写反了
} else {
sum = sum + months1[i];
}
}
sum += k[2]; //加当前月的天数
System.out.println(sum);
}
}
空指针异常
这是什么问题。