携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情
如何选择循环
首先,确定的是入口条件还是出口条件循环。通常,入口条件循环用的比较多,原因如下:
- 一般原则是在执行循环之前测试条件比较好。
- 测试放在循环的开头,程序可读性更高。
- 在许多应用中,要求一开始不满足测试条件时就直接跳过整个循环。
要让for循环看起来像while循环怎么做呢?例如下面:
for(;test;)
与下面的while效果效果:
while(test)
要让while循环看起来像for循环,可以在while循环的前面初始化变量,并在while循环体中包含更新语句。例如:
初始化;
while(测试)
{
其他语句
更新语句
}
与下面的for循环效果相同:
for(初始化;测试;更新)
其他语句
一般而言,当循环涉及初始化和更新变量时,用for循环比较合适,而在其他情况下用while循环更好。对于下面这种条件,用while循环就很合适:
while(scanf("%1d",&num)==1)
对于涉及索引计数的循环,用for循环更合适。例如:
for(count=1;count<=100;count++)
嵌套循环
嵌套循环指在一个循环内包含另一个循环。嵌套循环常用于按行和列显示数据,也就是说,一个循环处理一行中的所有列,另一个循环处理所有的行。
用嵌套举例
#include <stdio.h>
#define ROWS 6
#define CHARS 10
int main() {
int row;
char ch;
for(row=0;row<ROWS;row++) //第7行
{
for(ch='A';ch<('A'+CHARS);ch++)//第9行
printf("%c",ch);
printf("\n");
}
return 0;
}
运行结果
第7行开始的for循环被称为外层循环,第9行开始的for循环被称为内层循环。外层循环从row为0开始循环,到row为6时结束。因此,外层循环要执行6次,row的值从0变为5.每次迭代要执行的第1条语句是内层的for循环,该循环要执行10次,在同一行打印字符A~J;第2条语句是外层循环的 printf("\n");,该语句的效果是另起一行,这样在下一次运行内层循环时,将在下一行打印字符。