LinuxC——循环

在写程序的时候,经常会要求我们的程序做一些重复的动作,这个时候我们就需要用到循环语句了。

C语言中的三种循环语句:

  1. while
  2. for
  3. do  while

接下来就依次介绍着三种循环语句

一、while循环

while循环的通用形式

while(expression)
    statement

statement可以是以分号结尾的简单语句,也可以是用花括号括起来的复合语句。

如果expression为真(即非零),那么就继续循环执行statement,然后再判断expression的值,直到expression的值为零,那么就跳出循环,不再执行statement。

循环终止

通常来说,一个循环都有一个终止的条件,否则这个循环就会一直执行下去,这样会占用许多的资源,最后有可能会导致程序的崩溃。

【注】如果要让循环终止,那么测试的表达式的值一定要有变化,否则这个表达式的值就是刚进入循环的值,这样就会陷入死循环。

一个简单的死循环的例子

while(1)
    ;    //空语句,什么都不执行

这个死循环什么都不做,只是占用资源,所以这样的循环一般是不用的。

如果我们要计算从1加到一百的结果,该怎么使用while循环呢,接下来我们就来看一看这个例子:

#include <stdio.h>

int main()
{
	int a = 1;   
	int sum = 0;

	while(a <= 100)
	{
		sum += a;
		a++;
	}

	printf("the result is %d\n", sum);

	return 0;
}

a 这个变量是1到100, while后面的括号就是测试条件,当a<=100 的时候就把sum+a 的值赋给sum,并且a自加1。最后将累加的结果打印出来,打印的结果如下


二、for循环

for循环的通用形式

for(init-statement; condition; expression)  
 statement; 

for循环将初始化,测试,更新三个行为组合在一起。

for循环后面的圆括号中有三个表达式,第一个表达式是用来初始化的,这个表达式只会在for循环开始时执行一次,第二个表达式是测试条件,在执行循环之前先对这个表达式求值,如果表达式的值为真,就执行循环体中的语句,然后在执行第三个表达式;如果第二个表达式的值为假,那么就不会执行循环体中的内容,结束循环,然后执行第三个表达式。第三个表达式是在每次循环结束时求值

我们就用for循环来改写上面这个例子

#include <stdio.h>

int main()
{
	int i;
	int sum = 0;

	for(i = 1; i <= 100; i++)
	{
		sum += i;
	}

	printf("sum  = %d\n", sum);
	printf("i = %d\n", i);

	return 0;
}

首先将i初始化为1, 然后判断i<=100是否成立,如果成立就执行sum += i;执行完之后,i++;如果 i <= 100不成立,那么就结束了循环。我们来看一下最终的结果吧,这里我们把i和sum的值都输出了。


三、do while循环

do while循环的通用形式

do
    statement
while(expression);

【注】:do while循环是先执行一次,才判断的,所以这个循环至少执行一次。

我们同样用上面的例子来测试一下:

#include <stdio.h>

int main()
{
	int i = 1;
	int sum = 0;

	do
	{
		sum += i;
		i++;
	}
	while(i <= 100);

	printf("sum = %d\n", sum);

	return 0;
}

以下是输出的结果


结果和上面两种循环算出来的是一样的。

四、循环的选择

从上面的第三个循环的例子,我们可以看到不管用什么循环语句,最终都能得到正确的答案,所以这三种循环都是差不多的,但我们也需要根据情况来选择合适的循环语句。

一般而言,但循环涉及初始化和变量更新时,用for循环比较合适。如果我们不知道循环的终止条件时,使用while循环比较合适。

循环是程序中使用很多的一种语句,所以我们要能够熟练的运用循环语句。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值