循环小知识

一、如何选择循环
如何选择使用哪一种循环?首先,确定是需要入口条件循环还是出口条件循环。通常,入口条件循环用得比较多,有几个原因。
其一,一般原则是在执行循环之前测试条件比较好。其二,测试放在循环的开头,程序的可读性更高。另外,在许多应用中,要求在一开始不满足测试条件时就直接跳过整个循环。
那么,假设需要一个入口条件循环,用for循环还是while循环?这取决于个人喜好,因为二者皆可。要让for循环看起来像while循环,可以省略第1个和第3个表达式。例如:
for(;test;)
与下面的while效果相同:
while(test)
要让while循环看起来像for循环,可以在while循环的前面初始化变量,并在while循环体中包含更新语句。例如:
初始化;
while(测试)
{
其他语句
更新语句
}
与下面的for循环效果相同;
for(初始化;测试;更新)
其他语句一般而言,当循环涉及初始化和更新变量时,用for循环比较合适,而在其他情况下用while循环更好。对于下面这种条件,用while循环就很合适:
while(scanf("%ld",&num)==1)
对于涉及索引计数的循环,用for循环更适合。例如:
for(count=1;count<=100;count++)
二、嵌套循环
嵌套循环(nestedloop)指在一个循环内包含另一个循环。嵌套循环常用于按行和列显示数据,也就是说,一个循环处理一行中的所有列,另一个循环处理所有的行。例如下面的程序:

include<stdio.h>

defineROWS6

defineCHARS10

intmain(void)
{
introw;
charch;
for(row = 0; row < ROWS; row++)/第10行/
{
for(char = 'A' ; ch < ('A'+CHARS); ch++)/第12行/
printf("%c",ch);
printf("\n");
}
运行结果如下:
ABCDEF
ABCDEF
ABCDEF
ABCDEF
ABCDEF
ABCDEF
第10行开始的for循环被称为外层循环(outerloop),第12行开始的for循环被称为内层循环(innerloop)。外层循环从row为0开始循环,到row为6时结束。因此,外层循环要执行6次,row的值从0变为5。每次迭代要执行的第1条语句是内层的for循环,该循环要执行10次,在同一行打印字符A~J;第2条语句是外层循环的printf("\n");,该语句的效果是另起一行,这样在下一次运行内层循环时,将在下一行打印的字符。
注意,嵌套循环中的内层循环在每次外层循环迭代时都执行完所有的循环。

上一篇:csapp lab3 attack


下一篇:css 实现页面加载中等待效果