上一篇 <一起学习C语言:C语言循环结构(二)> 中,我们了解了while、do…while语法和continue语句的应用场景。本篇文章中,我们分析循环结构嵌套使用,并通过几个示例分析continue和break语句的结合用法。
章节预览:
3. continue和break应用场景
4. 循环结构嵌套
4.1 循环结构嵌套用法
5. 本章总结
目录预览
章节内容:
3. continue和break应用场景
continue只能在循环结构中使用,而break可以在switch结构和循环结构中使用。
continue语句用来停止循环结构本次执行,并进入下一次循环,而break语句则是用来终止switch结构或循环结构停止运行,并执行结构之后的代码。
【例5.8】 生成100次100以内随机数,如果随机数为10,输出随机数相加结果并退出循环结构。
int i = 0;
int sum = 0;
int N = 0;
srand((unsigned)time(NULL));
N = rand() % 100;
do
{
if (100 > i++) {
if (10 != N) {
sum += N;
N = rand() % 100;
continue;
}
else {
printf(“i等于%d,sum等于%d.”, i, sum);
break;
}
}
else
printf(“i等于%d,sum等于%d.”, i - 1, sum);
}while (100 >= i);
示例分析:
1. if语句表达式“100 > i++”,如果结果为“真”,执行if语句块,否则执行else语句,只输出结果。
2. if语句表达式“10 != N”,如果结果为“真”,首先加上每一次随机数的值,然后重新获取一个100以内的随机数,并且停止本次循环执行,进入下一次循环。如果结果为“假”,输出结果,并终止循环执行,然后执行do…while之后的语句。
3. do…while语句表达式“100 >= i”,如果结果为“真”,执行语句块,否则停止循环执行,并执行do…while之后的语句。
4. 循环结构嵌套
一个循环结构内可以内嵌另一个循环结构,内嵌的循环结构内也可以继续内嵌新的循环结构,这种情况一般称作循环结构嵌套。循环结构嵌套没有具体限制,一般根据实际需要做决定。
【例5.9】 采用左上三角形式,输出九九乘法口诀。
int i, j;
for (i = 1;i <= 9;i++) {
for (j = 1;j <= 9;j++) {
if (j >= i)
printf ("%d*%d=%2d\t", i, j, i * j);
}
printf ("\n");
}
示例结果:
示例分析:
1. 使用两个for循环结构,结构中的i和j分别表示乘数(行数)和被乘数(行内输出)。
2. 在内嵌的for循环结构中运算,并且当被乘数大于等于乘数时,输出运算结果。
3. 每行输出完成后,进行换行。
4. 运算完成后,生成左上三角形。
4.1 循环结构嵌套用法
循环结构可以嵌套相同类型的循环结构,也可以嵌套不同类型的循环结构。比如for循环结构内嵌套for循环结构,while循环结构内嵌套for循环结构,do…while循环结构内嵌套while循环结构等,三种循环结构内可以互相嵌套。
嵌套形式一:
for( ;;) {
for( ;;) {
…
}
}
嵌套形式二:
while() {
for( ;;) {
…
}
}
嵌套形式三:
do {
while() {
…
}
} while();
……
【例5.10】 以100次作为一次周期,并在周期内生成100以内随机数,如果随机数为10,输出随机数相加结果,并开始新的循环周期。如果随机数为99,输出总结果,并退出循环结构。
int once = 0; //一次周期总数
int sum = 0; //总数
int i = 0; //一次周期执行的次数
int N = 0; //随机数
srand((unsigned)time(NULL));
N = rand() % 100;
while (99 != N) {
for (once = i = 0;i < 100;i++) {
if (10 != N && 99 != N) {
once += N;
N = rand() % 100;
continue;
}
else if (10 == N || 99 == N) {
break;
}
}
sum += once;
printf(“周期内执行%d次,周期总数等于%d.\n”, (i == 100) ? i : i + 1, once);
if (99 == N)
printf(“总数等于%d.”, sum);
else {
N = rand() % 100;
if (99 == N)
printf(“总数等于%d.”, sum);
}
}
示例结果:
示例分析:
1. while语句表达式“99 != N”,如果结果为“真”,执行语句块,否则停止循环执行,并执行while之后的语句。
2. for循环执行100次,如果执行满100次,或在100次内生成的随机数等于10或99,将停止for循环执行,并继续执行外层的while循环结构。
3. 输出每个周期执行次数和执行结果。
4. 如果随机数等于99,输出总数并在下一次判断中,停止循环执行,并执行while之后的语句。否则获取一个新的随机数,如果随机数不等于99,按1.、2.、3.顺序执行。
5. 本章总结
本章节,我们了解了C语言循环结构和不同控制语句的使用方式,日常编程中,我们需要做到合理设计循环逻辑、正确使用控制语句,这样可以避免结构无限循环、数据异常等问题。本章节内容偏向思路化,需要多次练习才能完全理解。
实际编程中,循环结构应在必要的情况下使用,能用分支结构代替的情况下,应使用分支结构。
目录预览
<一起学习C语言:C语言发展历程以及定制学习计划>
<一起学习C语言:初步进入编程世界(一)>
<一起学习C语言:初步进入编程世界(二)>
<一起学习C语言:初步进入编程世界(三)>
<一起学习C语言:C语言数据类型(一)>
<一起学习C语言:C语言数据类型(二)>
<一起学习C语言:C语言数据类型(三)>
<一起学习C语言:C语言基本语法(一)>
<一起学习C语言:C语言基本语法(二)>
<一起学习C语言:C语言基本语法(三)>
<一起学习C语言:C语言基本语法(四)>
<一起学习C语言:C语言基本语法(五)>
<一起学习C语言:C语言循环结构(一)>
<一起学习C语言:C语言循环结构(二)>