import java.util.Scanner;
public class grammar {
public static void main(String[] args) {
//Scanner scan= new Scanner(System.in);
//nt r = scan.nextInt();
int s = getNum(100);
System.out.println(s);
}
public static int getNum(int m){
if(m==1){
return 1;
}else{
int sum = m + getNum(m-1);
}
return sum;
}
}
递归函数里 我把sum 定义在前面就没问题,向上面这样定义却报错了,想不明白,求教。
int sum 这个定义走出else块就没有了。
全局变量和局部变量
程序块是一个使用'{'和'}'包含起来的单独的模块,
局部变量指的是只在相应的方法体内或程序块内才有效的变量。
由题可见,sum是else{}中的局部变量,故而在else{}之外无法访问它;