/* 双层 for 循环 */
String nestedForLoop(int n) {
StringBuilder res = new StringBuilder();
// 循环 i = 1, 2, ..., n-1, n
for (int i = 1; i <= n; i++) {
// 循环 j = 1, 2, ..., n-1, n
for (int j = 1; j <= n; j++) {
res.append("(" + i + ", " + j + "), ");
}
}
return res.toString();
}
//来自:www.hello-algo.com
这里就是一个双层for循环。
对于一个刚接触到java基础的人来讲可以看一看,很有意思的。
---------------------------------------------------------------------------------------------------------------------------------
上面就是我们今天的目标:“搞懂双层for循环!”
---------------------------------------------------------------------------------------------------------------------------------
首先我们来看一看for循环
for(int i=1; i<=n; i++){
//n 为任意常数
System.out.println("现在i为:"+i);
}
//1. i=1
//2. 判断i是否小于等于n
//3. 控制台打印输出
//4. i++
//5. 判断i是否小于等于n
//6. 如返回false,跳出循环;如返回true,进入内部继续控制台打印输出
单for循环是这样的;很简单是吧;做个九九乘法表?
双for呢?
如下:
流程图比直接看代码好理解些;也算是偷懒上了!
流程图分析:
- 进入外层for循环,这时i=1
- 判断 i 是否小于对于 n (n为自己规定的循环终止值)
- 若为true ,则正式进入内层for循环;若为false,则直接在外层for循环就over掉了
- 进入内层for循环,这是j=1
- 判断 i 是否小于等于 m (m为自己规定的循环终止值)
- 若为true,则进入内层循环内容,若为false,则继续执行外层循环的i+=1(其实如果第一次j赋值为 m 的话 那写第二层有什么意义呢,这里重点当然是 j<= m 返回true 咯!!!)
- 小结:外层for循环执行一次,内层for循环执行 “一整圈” 。
快去整个九九乘法表出来放评论区!!!