我刚开始学时,一直不明白这个for循环 如何写出99乘法表,之后就放弃编程了,后来因为工作的原因发现离不开它,也看到很多 大佬有把自己的心得记下来,所以 打算重新开始
public class double {
public static void main(String[] args){
for(int i=1;i<=9;i++){ //外循环
for(int o=1;o<=i;o++){ //内循环
System.out.println(o+"*"+i+"="+(i*o)+"/t");
}
System.out.println("");
}
}
}
/*第一遍:i=1;o=1;然后走程序;o<=i;(o<=1;这个判断成立)
输出结果就是1*1=1;然后程序走完一边;执行i++;
第二遍:但是i<9,所以继续循环,走到内循环里,o<=i;(此时i=2,o=1),条件判断o<=2;输出第一行是1*2=2;
然后o++;由于上个条件成立,输出之后,再次回到内循环,此时i=2;o=2;所以条件成立。输出2*2=2;然后程
序走完一边;执行i++;
第三遍:i<9,i++两次,所以等于3;i<=9;执行内循环,o=1;o<=i(3);i++;第一遍输出1(第一遍的o)*3(第一遍的
i)=3;然后o++;o在第二遍就等于2了;所以第二遍输出的是2*3=6;然后o++;第三遍输出时:i的值仍然是3,o的
值在o++两边后也等于3,输出3*3=9后;o=4时,内循环的条件就不成立了。
然后执行外循环里的换行,再因为i=3,仍然是i<=9;所以外循环继续;知道最后i<=9这个输出出来,i=10时,条
件不满足i<=9,输出结束;
*/
第一点:刚开始不理解为什么外循环的值可以不变,而内循环每次都要从1开始,直到在知乎看到这个解释:
for(循环初始化表达式; 循环条件表达式; 循环后的操作表达式) {
// 循环体
}
在“循环初始化表达式”中声明的变量,我们称之为“循环变量”
for循环执行顺序:
1)“循环初始化表达式”最先执行,并且只执行了一次。
2)如果“循环条件表达式”成立,则执行循环体;如果“循环条件表达式”不成立,则跳出循环。
3)“循环体”执行完毕以后,立刻执行“循环后的操作表达式”
4)“循环后的操作表达式”执行完毕以后,立刻执行“循环条件表达式”
作者:筱毅
链接:https://zhuanlan.zhihu.com/p/73039250
来源:知乎
因为内循环的(循环初始化表达式)在输出完他的结果后已经结束了,但是外循环的变量此时仍然小于9,还没有结束,所以外循环得初始值不变;
至此for循环的嵌套基础理解告一段落;