今日在做JAVA中的循环练习的时候,突然发现自己对变量的作用域很是模糊,所以做了下列总结。
引入问题:生成一个四行任意列的星星
例: 生成一个四行五列的星星
*****
*****
*****
*****
两个程序如下:
// ===========test1-1System.out.println("请输入一个数===test1-1");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int i = 0;
int f = 0;
while (i < 4) {
while (f < num) {
System.out.print("*");
f++;
}
System.out.println();
i++;
}
对于test1-1中变量的作用范围的理解:变量num,i,f相对于整个程序块来说都是属于全局变量,所以在初始化一次之后,直到整个程序停止运行并且再重新运行一次的时候,这三个变量才会重新初始化一次。因此,在内层while完成整一周循环之后变量f==num,所以此时将退出内层循环。在输出一个换行符并且i++之后,并且判断完循环条件之后再继续执行内部的while循环&#x