对于循环控制结构部分的学习总结

一、循环控制结构与循环语句
简介:使一个算数运算按意愿进行。
循环结构:
(1)当型循环结构,表示当条件P成立时,反复执行A操作,直到条件P不成立时结束循环。
(2)直到型循环结构,表示先执行A操作,再判断条件P是否成立。若为真,则反复执行A操作,直到条件P不成立时结束循环。
循环语句类型:(1)while语句;(2)do-while语句;(3)for语句。
(1)while语句:
while(条件)
{
语句;
}
(2)do-while语句:
do
{
语句;
}while(条件);
(3)for语句:
for(初始化表达式;条件;增值表达式)
{
语句;
}
注意:对于(1)(2)两种语句来说,(2)语句先执行循环体后再计算并判定循环控制条件为真还是为假。所以循环体内的语句将至少被执行一次;For语句中三个表达式之间的分隔符是分号,有且仅有两个分号,既不能多也不能少。
经典案列:编程从键盘输入n,然后计算并输出1+2+3加到n的值。
#include
#include
using namespace std;
int main()
{
int i,n,sum;
cin>>n;
sum=0;
for(i=1;i<=n;i++)
{
sum+=i;
}
cout<<sum;
return 0;
}
二、计数控制的循环
定义:循环次数已知的循环成为计数控制的循环。习惯上,用for语句编写。
例题:编写一个程序,从键盘输入n,计算并输出n!
#include
#include
using namespace std;
int main()
{
int i,n;
long p=1;
cin>>n;
for(i=1;i<=n;i++)
{
p=p*i;
}
cout<<p;
return 0;
}
三、条件控制循环
定义:循环次数由条件控制。
知识点:
(1)随机函数rand()生成[0-32764]之间的整数(在头文件中)。
1、利用求余运算rand()%b生成随机数在[0~b-1]之间。
2、利用rand()%b+a生成随机数在[a~b-1+a]之间。
(2)利用函数srand()为函数rand()设置随机数种子。
代码:
int magic;
unsigned int seed;
cin>>seed;
srand(seed);
magic=rand()%100;
(3)也可利用函数time()来自动生成种子(在头文件中)。
代码:
int magic;
srand(time(NULL));
magic=rand()%100;
(4)检测程序正确性。
代码:
int ret;
ret=scanf("%d",&n);
while(ret!=1)
{
while(getchar()!=‘n’);//清除输入缓冲区的错误数据
ret=scanf("%d",&n);
}
四、流程的转移控制
(1)goto语句。(无条件跳转)
(2)break语句。用于循环结构中时直接跳到循环结构中的第一条语句继续执行。
(3)continue语句。用于循环结构中程序将会跳过continue后面的语句,而开始下一次循环。既结束本次循环的进行。
注意:在嵌套循环的情况下,break语句与continue语句只对包含他们的最内层循环语句起作用,不能用break语句跳出多重循环。
知识点:
(1)while(x)=while(x!=0);
(2)while(!x)=while(x==0);
五、个人感悟与收获
1、做了这么多open judge题,题目越来越难,对个人的逻辑思维能力要求也越来越高。有时候做不出来题,不如放一放。说不定某一瞬间就会灵感一现,适度放松一下大脑是做题成功的催化剂。
2、for语句的使用非常多,这个语句比较简单,适用的情况很多。但也不能完全使用for语句,合理使用三个语句是解题成功的关键。
3、对于goto语句尽量少使用。在修正错误的过程中,多使用输出语句,把每一步的运算结果都展现出来,有利于发现错误并改正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值