C++循环结构

一、循环体部分知识点整理

1.for循环

 for(表达式1;表达式2;表达式3)
 {
	break;                              	//用于跳出当前循环体,结束循环。
	continue;				//跳过当前循环体continue后面的代码,继续执行下一个循环	
	return 0;              			 //跳出该函数
 }

程序执行顺序,先执行表达式1,验证表达式2是否为真,执行循环体语句,执行表达式3,再验证表达式2是否为真,若为真继续执行上述操作,直至表达式2不成立,跳出循环体,执行后续语句。
特殊用法
for()中可以不加语句也可以添加部分语句,语句不存在时跳过执行,参考while循环。

参考例题

最高的分数

描述
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?

输入

输入两行,第一行为整数n(1 <= n <
100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。

输出

输出一个整数,即最高的成绩。

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
	int i,a=0,b=0;
	int score[100];
	cin>>a;
	for(i=0;i<a;i++)
	{
		cin>>score[i];
		b=max(b,score[i]);
	}
	cout<<b;	
	return 0;
}

2.while循环-适合不确定循环次数时使用

while循环

while (条件表达)
{
break; //用于跳出当前循环体,结束循环。
continue; //跳过当前循环体continue后面的代码,继续执行下一个循环
return 0; //跳出该函数
}

运行顺序:首先检验条件语句是否为真若为真,执行循环体,直至条件不成立,跳出循环。

参考例题

金币 描述
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。
你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。 输入 一个整数(范围1到10000),表示天数。 输出
骑士获得的金币数
样例输入
6
样例输出
14

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,i=1,sum=0;
cin>>a;
while (a>0)
{
a=a-i;
sum=sum+i*i;
if(a<0) sum=sum+a*i;
i++;
}
cout<<sum;
return 0;
}
do-while()循环
do
{
//循环体
}while()
执行

顺序大体与while循环一样,但程序至少执行一遍。 将上述程序改写为do-while()循环

#include <iostream>     
#include <cstdio>     
using namespace std;     
int main()     
{         
	int a,i=1,sum=0;         
	cin>>a;         
	do        
	{             
		a=a-i;            
		sum=sum+i*i;             
		if(a<0) sum=sum+a*i;            
		i++;         
	}while(a>0)
	cout<<sum;   
	return 0;     
} 

循环体可以用来解决的问题

从上述题目中可以看到
如果程序中存在需要连续反复执行多次的操作,就可以采用。
另外针对操作次数已经,建议使用计数循环方式。
如果操作次数未知,要求达到指定目标才停止,就采用条件循环。
很多函数大都是循环体。

本阶段学习遇到的问题以及学习感悟

从开始不熟悉c语言,到如今的可以熟练的运用简单的语句,从被动的听老师讲课,到现在自己做题从不会问题中去寻找知识点,进行积累。最近遇到最头疼的问题就是程序可以运行但是,却总的不出正确的答案,只要在程序中一个值的错误,或者定义变量没有初始化都使整个程序偏离正确的答案,编程是一件严谨的事情,绝不可有半点马虎,其次是对于题目的理解不够,循环体中的内容相对,思路出现较慢,理解题目还不够全面。对于后期的学习应该从题目中总结经验,归纳题目解题思路,for循环相对于while循环更加实用便捷,通过运用break、continue等可以使程序更简化,通过循环的套用能够解决更多更复杂的问题,而对于学过的知识,以为通过编程就可以复习,但是只写程序而不复习积累过的知识,有些知识还是会遗忘,所以要在学习中回归书籍以及整理的知识点。




写在最后:
我叫风骨散人,名字的意思是我多想可以不低头的自由生活,可现实却不是这样。家境贫寒,总得向这个世界低头,所以我一直在奋斗,想改变我的命运给亲人好的生活,希望同样被生活绑架的你可以通过自己的努力改变现状,深知成年人的世界里没有容易二字。目前是一名在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!😘你的点赞、收藏、关注是对我最大的鼓励!

posted @ 2018-12-08 22:16  风骨散人  阅读(149)  评论(0编辑  收藏  举报