循环控制结构

最近我们的C语言课程刚刚结束对循环控制结构的学习。在此对C语言中循环控制结构的知识点进行总结,并发表看法。
循环结构主要分为两种:当型循环结构和直到型循环。当型循环是根据条件决定是否执行循环,直到型循环是先循环再判断,即至少循环一次。C语言中主要是通过for、while、do-while三中循环语句来实现循环的。
一、while语句为当型循环。格式为:
while(循环控制表达式)
{
循环语句
}
当循环控制表达式成立时则执行循环,while便于多组循环输入。对于特殊情况,例如:while(r!=0)等价于while®,即r不等于0时循环;while(!r)为r=0时循环。另外,当输入为有效输入时执行循环的语句为:while(scanf("%d",&x)=1);当输入不是无效输入时,语句为(scanf("%d",&x)=EOF)(ps:EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。为C语言中的一个常量。)对于C++则直接使用while(cin>>a>>b>>…)表示输入为有效输入时执行循环。
二、do-while语句属于直到型循环。格式为:
do
{
循环语句
}while(循环控制表达式)
先执行一次循环再进行判断,若循环条件成立则继续循环,循环体内的语句至少循环执行一次。
三、for语句属于当型循环。格式为:
for(初始化表达式;循环控制表达式;增值表达式)
{
循环语句
}
即循环控制表达式成立时则执行循环,根据增量表达式确定循环几次之后结束循环,一般来说for(…)已经确定了循环执行次数和终止条件。注意三个表达式之间是用分号隔开。
注意:1.循环变量可在循环体中做一般变量使用,这时循环变量变化唯一。
2.和变量赋初值在重复累加之前,作为重复累加的第一条语句。
3.for、while之后无分号。
4.break为跳出循环语句,终止循环。
关于三种循环结构的选择:若循环次数已知,计数控制的循环用for;若循环次数未知,用条件控制的循环用while;循环体至少执行一次的用do-while。也要根据实际情况进行选择,当有多组输入时,一般采用while。对于只有一组输入的了情况,一般用for即可。对于有些题目,不能一下算出来,就需要把所有的情况都罗列出来,这种方法叫暴力法。许多题目不是用一个循环写的,而是在一个循环中在套一个循环,即为循环嵌套结构。举个例子:openjudg中的画矩形问题,题目要求是用输入一个字符,输出一个用该字符组成实心或空心矩形方阵。代码如下:

#include<stdio.h>
using namespace std;
int main()
{
    int a,b,n;
    char x;
    scanf("%d %d %c %d",&a,&b,&x,&n);
    if(n==1)
	{
        for(int i=1;i<=a;i++)
        {
            for(int j=1;j<=b;j++)
            printf("%c",x);
            printf("\n");
        }
		}
    if(n==0)
	{
	
		for(int j=1;j<=b;j++)
		{
			if(j==1||j==b)
			{
			for(int i=1;i<=a;i++)
			printf("%c",x);
			printf("\n");
			}
			
		else
		{
		for(int i=1;i<=a;i++)	
			{
				if(i==1||i==a)	
			printf("%c",x);
			else
			printf(" ");
			}
			printf("\n");
		}
	}
	}
	return 0;
}

因为输出的是一个二维图形,所以需要两重循环控制,分别控制行数何列数。其中,循环变量i控制的是行数的变化,而j表示的是列数的变化。其他题目类似。
对于循环结构的学习,需要不断的深入理解。首先,要将知识点记住,把结构牢记于心,需要注意各种易错的地方,敲代码时要严格认真。其次,做题时要注意读懂题意,避免掉入陷阱。比如说:int定义的是最多是32位整数,此时若运算时或输出时的数据超出32位,则会出现错误,此时就应该用long long进行定义。再者,我认为所有的程序员都必须具备一定的专业素养,我们应该学会用计算机的思维看代码。当程序编译成功但是输出不正确时,我们需要对代码进行修改调试,这是就需要我们用计算机的思维方式进行修改,通过对代码的阅读,试着让代码在自己的大脑里运行一遍,找出错误的地方,并进行修改。如果无法通过阅读查看来对程序进行调试,可以在不同的位置多加几组输出,看看运行结果是否正确,这样能较快速的找出错误的地方,并进行改正。需要注意的是,提交时需要把多加的输出语句注释掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值