C语言循环控制结构学习总结
一.知识点总结
- while语句
其一般形式为 while(循环控制表达式)
{
语句序列 (循环体)
}
注:书写语句时,要用花括号将循环体括起来。如果忘加花括号,那么仅while后面的第一条语句被当做循环体中的语句来处理。 - do–while语句
其一般形式为 do
{
语句序列 (循环体)
}while(循环控制表达式)
注:while语句是先判断条件,再执行循环体;而do–while语句则是先执行一遍循环体,再判断条件,所以do–while语句的循环体至少执行一次,而while语句的循环体可以一次也不执行。 - for语句
其一般形式为 for(初始化表达式;循环控制表达式;增值表达式)
{
语句序列 (循环体)
}
注:当循环次数确定时,用for循环较为便利,当循环次数不确定时,一般采用while语句和do-while语句。 - 生成随机数:
(1)随机函数rand()是在头文件cstdlib中
(2)利用求余函数rand()%b将函数rand()生成的随机数变化到[0,b-1]之间
(3)利用rand()%b+a将随机数的取值范围平移到[a,a+b-1]之间
例:#include
int magic;
magic=rand()%100+1; //生成一个1-100之间的随机数,但这种方法只能生成固定的随机数,于是我们提出了随机数种子
例:#include<time.h>
#include
int magic;
srand(time(NULL)); //为函数rand()设置随机数种子
magic=rand()%100+1;
二.易错点总结及做题感想
- for(i=1;i<=n++i)
{
sum+=i;
}
注:在循环开始前,一定要将 计数器变量,累加求和变量或累乘求积变量进行初始化,
2.在写while语句和for语句后面的复合语句时,不要忘记加花括号
3.while语句后不加“;” 例:while(i<=n) 后不加“;”
而do-while语句后while后要加“;”
例:do{
sum+=i;
i++;
}while(i<=n);
4.对于双重循环,当外层变量变化1次时, 内层循环变量变化一遍。
例: for(int i=1;i<=n;++i)
{
for(intj=1;j<=n;++j)
{
循环语句
}
}
- break语句
用法:break语句除用于退出switch结构外,还可用于由while,do-while语句构成的循环语句的循环体中。当执行循环体遇到break语句时,循环将立即终止跳出循环,并从循环语句后的第一条语句开始执行 - continue语句
用法:当在循环体中遇到continue语句时,程序将跳过continue语句后面尚未执行的语句,开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。
注:在循环嵌套循环的条件下,break语句与continue语句只对包含它们的最内层的循环语句起作用,不能用break语句跳出多重循环。若要跳出多重循环,使用break语句只能一层一层的退出。
三. 可以解决的题型 - 画矩形以及蛋糕裱花问题,都是利用双层循环通过找一定的规律写出代码
2.当遇到求余数相同的问题时,会有多组数据输入,
因此我们可以用while(cin>>a)
3.可以用来求解一些用暴力方式解决的问题,举例:输出与7有关的数
在循环控制结构中,我们学习了结构化程序设计的基本思想以及几种循环语句,除此之外,我们还应注意程序的设计优化,也不能一味的使用循环暴力解决问题,否则可能会造成超时,所以,这就要求我们不断优化程序结构,减少循环次数。