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;
'''