import java.util.Scanner;
public class YearMonth{
public static void main(String [] args){
//以下判断是否闰年
System.out.print("请输入您需要查询的年份:");
Scanner input = new Scanner(System.in);
int year = input.nextInt(); //获取输入的值为年份
int runnian = 0; //直接在判断语句中声明runnian变量,会造成在判断语句之外不能调用,所以先在外部声明
if ((year%400==0)||((year%4==0)&&(year%100!=0))){
System.out.println(year+"是闰年!");
runnian = 1;
}else{
System.out.println(year+"不是闰年。");
//runnian = 0;
}
System.out.println(runnian);
System.out.println("请输入您要查询的月份:");
Scanner input2 = new Scanner(System.in);
int month = input.nextInt(); //获取输入的值为月份
//sanyi = {1,3,5,7,8,10,12}; //可以创建一个字典,然后in
if ((month==4)||(month==6)||(month==9)||(month==11)){
System.out.println(month+"有30天。");
}else if(month==2){
if(runnian == 1){
System.out.println(month+"有29天。");
}else{
System.out.println(month+"有28天。");
}
}else{
System.out.println(month+"有31天。");
}
}
}
在第一个if语句中,用到runnian变量才开始定义,在if判断语句结束后,在外部就不能再直接调用runnian变量
解决方法:
直接现在外部声明变量
(或者,在代码开头,就把所需变量提前声明好,需要时直接调用或赋值)
例:
int a;
int b;
'''
'''
a = 10;
b = 10;
'''