C语言循环的嵌套
注:参考网络资源拟制,如雷同请见谅
循环的嵌套:
一个循环体语句中又包含另一个循环语句,称为循环嵌套。
嵌套注意事项:
1.使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。
2.循环嵌套结构的书写,最好采用“右缩进”格式,以体现循环层次的关系。
3.尽量避免太多和太深的循环嵌套结构
用途:
循环嵌套可以帮助我们解决很多问题,在C语言中经常被用于按行列方式输出数据,例如:
////////////////
// 九九乘法表
///////////////
#include <stdio.h>
#define ROWS 9
int main()
{
int i, j;
for ( i = ; i <= ROWS; ++i ) // 外循环控制输出行数
{
for ( j = ; j <= i; ++j ) // 内循环控制输出列数
{
printf("%d ", i * j); // 输出乘积
}
printf("\n"); // 换行
}
return ;
}
程序说明:
本例中的外循环共循环 9 次(即一共输出九行),当 i 等于 10 时循环终止。外循环的每轮循环都会执行内循环,在外循环的每轮循环中,内循环的循环次数都不相同。因为外循环的每轮循环都会使 i 增 1,而且 j 的值也会被重新赋值为 1,而内循环的结束条件是 j <= i,且内循环的每轮循环中 j 只增加 1,所以外循环每循环一次,内循环的循环次数就增加一次:在外循环的第一轮循环,内循环的循环次数为 1;在外循环的第二轮循环,内循环的循环次数为 2;在外循环的第三轮循环,内循环的循环次数为 3……以此类推。下面是部分模拟本例的运行过程。
1. 外循环第一轮循环
i 的值为 1(以下简写为 i = 1),故而 i <= ROWS 成立,进入循环体:
1). 内循环的第一轮循环
j = 1,故而 j <= i 成立,进入循环体:
输出 i * j(即 1 * 1)的乘积和一个空格,即 1 。
++j --> j = 2,j <= i 不成立,内循环结束。
输出
换行
++i --> i = 2,故而 i <= ROWS 成立,开始第二轮循环。
2. 外循环第二轮循环
1). 内循环的第一轮循环
j = 1,j <= i 成立,进入循环体:
输出 i * j ( 2 * 1 ) 和一个空格,即 2 。
++j --> j = 2,j <= i 仍然成立,开始第二轮循环。
2). 内循环的第二轮循环
输出 i * j ( 2 * 2 ) 和一个空格,即 4 。
++j --> j = 3,j <= i 不成立,内循环结束。
输出
换行。
++i --> i = 3,i <= ROWS 成立,开始第三轮循环。
至此,输出结果为:
1
2 4
外循环第三轮循环至第九轮循环从略,请自行模拟一次。
9. 外循环第九轮循环
/* ... ... */
++i --> i = 10,i <= ROWS 不成立,外循环结束。
最终的输出结果为:
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
C语言循环的嵌套的更多相关文章
- 【C语言】-循环的嵌套
循环的嵌套:当在一个循环语句中嵌入另一个循环时,成为循环的嵌套. 循环嵌套的形式: (1)for语句中嵌入for语句: for ( ) { for ( ) { ... } } (2)for语句嵌入wh ...
- C语言-循环结构及break、continue
循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...
- Go语言循环判断的使用~
Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 下图展示了程序语言中条件语句的结 ...
- Go 语言循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句. 以下为大多编程语言循环程序的流程图: Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执 ...
- GO语言学习(十一)Go 语言循环语句
Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 语法 Go语言的For循环有3中形式,只有其中的一种 ...
- A Pythonic Card Deck: __len__ & __getitem__ & for 循环的嵌套
1. 列表生成式的嵌套 for 循环: 示例如下: li1 = range(1,6) li2 = list("ABC") # list("ABC") 的结果为 ...
- for循环的嵌套,for循环的穷举迭代
for循环的嵌套 输入一个正整数,求阶乘的和 嵌套 Console.Write("请输入一个正整数:"); int ...
- 2017-2-24 C#基础 for循环的嵌套
用几个练习题演示一下for循环的嵌套 1.打印以下图形 ★★★★★★★★★★★★★★★ namespace _2017_2_24_for循环的嵌套 { class Program { static v ...
- for循环中嵌套setTimeout,执行顺序和结果该如何理解?
这两天在捣鼓作用域的问题,有的时候知识这个东西真的有点像是牵一发而动全身的感觉.在理解作用域的时候,又看到了一道经典的面试题和例子题. 那就是在for循环中嵌套setTimeout延时,想想之前面试的 ...
随机推荐
- base64的一个应用情景
AddActivity.xml rushrank.xml 不过AddActivity.xml不也是通过二进制流就传过去了吗? 事实上是可以的,只要不将这些二进制的数据写下来,传播是可以的,只 ...
- nutch 采集效率问题
http://hi.baidu.com/jacklin/item/a8fbccf479f6a1d042c36a7c再附一篇:http://blog.csdn.net/laigood/article/d ...
- struts2 拦截器1
action invoke前会调用,invoke后会调用 public class FirstInterceptor extends AbstractInterceptor{ @Override pu ...
- ORACLE 字符串操作
1 字符串连接 SQL> select 'abc' || 'def' from dual; 'ABC'|------abcdef 2 小写SQL>select lower('ABC01 ...
- BZOJ 2226 LCMSum
Description Given \(n\), calculate the sum \(LCM(1,n) + LCM(2,n) + \cdots + LCM(n,n)\), where \(LCM( ...
- navBar
改变NavgationBar的颜色: [[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]]; 改变NavgationB ...
- 【HTTP】Speed and Mobility: An Approach for HTTP 2.0 to Make Mobile Apps and the Web Faster
This week begins face to face meetings at the IETF on how to approach HTTP 2.0 and improve the Inter ...
- 【Java】Java里String 的equals和==
Java里面有对象和对象的引用的概念,在String方面,==比较的是引用,equals比较的是对象的具体值. String s1 = new String("abc");Stri ...
- nodejs发展
http://www.infoq.com/cn/news/2012/11/netease-nodejs-framework http://www.jlmonteagudo.com/2013/06/ja ...
- Sed&awk笔记之sed篇
http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...