C语言入门第四天之循环操作

循环操作,在编程中十分重要,计算机做的最多的事情就是重复的执行某几条指令,拿我们程序员来说一个程序没有循环就没了灵魂(递归除外),写一条执行一条的话,大部分人都累死了,哈哈,所以学好循环极为重要!

本次以一个案例驱动,求1+2+3+...+100=?

1.for循环实现

#include<stdio.h>
int main()
{
	int result = 0;//存放结果的变量
	int i;//依次相加的变量
	for (i = 1; i <= 100; i++)//累加
	{
		result += i;
	}
	printf("1+2+3+...+100=%d\n",result);//打印结果
	system("pause");
	return 0;
}

总结:for(表达式一;表达式二;表达式三)

表达式一的作用:是在为循环做初始的条件,在本例题中,只是初始化i的值,这个表达式只在循环开始前执行一次,多个初始条件可用,号隔开

表达式二的作用:是在每次循环的开始进行判断,如果满足条件则执行循环体的内容,不满足条件跳出循环

表达式三的作用:  是在每次循环体内容的结尾都执行的语句,每执行完一次循环体的内容后执行一次

2.while循环实现

#include<stdio.h>
int main()
{
	int result = 0;//存放结果的变量
	int i;//依次相加的变量
	i = 1;//给变量i赋初值1
	while (i <= 100)//累加
	{
		result += i;
		i++;
	}
	printf("1+2+3+...+100=%d\n",result);//打印结果
	system("pause");
	return 0;
}

总结:while(表达式)

表达式的作用: 是每次循环开始前进行的判断,如果满足条件,则执行循环体的内容,不满足条件则跳出循环

3.do while 循环实现

#include<stdio.h>
int main()
{
	int result = 0;//存放结果的变量
	int i;//依次相加的变量
	i = 1;//给变量i赋初值1
	do {	//累加
		result += i;
		i++;
	} while (i <= 100);
	printf("1+2+3+...+100=%d\n",result);//打印结果
	system("pause");
	return 0;
}

总结:do{} while(表达式);

表达式作用: 每次执行完进行条件的判断,满足条件继续执行循环体内容,不满足条件跳出循环(注意:do while循环 while循环后面一定要加;号)

4.区别

讲了这么多的循环到底它们有什么区别呢?

其实它们三个可以相互转换,但是它们都有各自的特点,while 和 for 差不多,

重点是do while ,这个循环结构是先执行循环体内容,不是先去判断是否满足循环条件,这点比较特殊,请读者仔细理解体会

5.break continue

这两个是在循环中使用,存在的意义是,当内部某个条件达到的时候,我不想运行了,想退出使用(break),或者当某个条件达到后面的执行语句我不想运行了,想跳出本次循环,进入下次循环时使用(continue)

下面是两个案列,我只是用while循环写,其它的大同小异,读者可自行尝试

5.1 案例:求1+2+3+...+? > 3000 说明:求加到什么什么时候,累加的和大于3000

#include<stdio.h>
int main()
{
	int result = 0;//存放结果的变量
	int i;//依次相加的变量
	i = 1;
	while (1)
	{
		result += i;
		if (result > 3000)//当累加结果大于3000时候退出
			break;
		i++;
	}
	printf("1+2+3+...+%d > 3000\n",i);//打印结果
	system("pause");
	return 0;
}

5.2案例:求1+2+3+...+77+79+...+100=?说明:求1加到77,省过78,再从79加到100

#include<stdio.h>
int main()
{
	int result = 0;//存放结果的变量
	int i;//依次相加的变量
	i = 0;
	while (i <= 99)
	{
		i++;
		if (i == 78)//当i等于78的时候,跳过result+=i这条指令,继续循环
			continue;
		result += i;
	}
	printf("1+2+3+...+77+79+...+100=%d\n",result);//打印结果
	system("pause");
	return 0;
}

三个循环讲完了,我接下来弄个小玩意,有兴趣的话可以自己百度了解,我递归实现1+2+3+...+100=?

#include<stdio.h>
int add(int n)
{
	if (n == 1)
		return 1;
	else
		return add(n - 1) + n;
}
int main()
{
	int result = add(100);
	printf("1+2+3+...+100=%d\n",result);//打印结果
	system("pause");
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值