今天看书的时候,突然发现以前写的一个很简单的循环嵌套的代码,居然一直都是理解错误的,今天就为了纠正自己的错误,把这个小小的例子重新理一遍。
这个例子就是用*打印一个三角形。代码如下:
package test;
public class Example {
public static void main(String[] args) {
int i,j;
for(i=0;i<10;i++){
for(j=0;j<=i;j++){
System.out.print("*");
}
System.out.println("");
}
}
}
他运行出来是这样子:
*
**
***
****
*****
******
*******
********
*********
**********
这是一个很简单的两层for循环,分别是外层给循环和内层循环,外层循环控制打印的行数,内层用于打印*,每一行的*个数逐行增加,最后输出一个直角三角形。那么他是怎么执行的呢?接下来做一个详细的讲解:
第一步:定义两个变量i和j,其中i为外层循环变量,j为内层循环变量;
第二步:外层for循环里的i=0,表示i初始化为0,条件i<10为true,首次进入外层循环的循环体;
第三步:首次进入内层for循环,j=0表示把j初始化为9,此时j=0,i=0,所以条件j<=i为true,执行循环体;
第四步:打印完第一个*之后,j++,自增为1,此时再执行内层的条件j<=i就为false了,所以跳出内层循环,执行下面的代码即换行;
第五步:执行外层循环的代码i++,i自增为1;
第六步:执行外层条件i<10,为true,进入外层循环,进入内层循环;
第七步:执行内层的j<i,此时j=0;i=1;条件为true,执行循环体,j再自增为1
第八步:打印第二行的第一个*之后,继续执行内层循环的j<i;此时j=1,i=1,条件还是true,再打印一个*,j自增为2;
第九步:执行内层循环的条件,此时j=2,i=1,条件为false,跳出外层循环,执行换行语句;
依次类推,在第三行会打印三个*,逐行递增,直到i的值为10的时候,外层循环的条件为false,外层循环结束,真个程序也就结束了。
老铁们有没有理解呢?
这些都是给小白说的,说白的了,给我看的,大神别嘲笑啊