生活中,有很多循环的东西,比如钟表就是在1到12循环,太阳东升西落也是循环,春夏秋冬也是循环,人生可能也是一个循环。
while
C语言中的循环可以这么描述:当某个条件成立,就一直做某件事或某些事。
//纯语言描述
当考试不及格;
就去复习;
再来考试;
还是不及格;
就去复习;
再来考试;
...
//语言+符号描述
当(考试不及格)
{
就去复习;
接着考试;
}
//半C语言化
while(考试不及格)
{
就去复习;
接着考试;
}
生活中的当,等同于C语言中的while
程序示例:求1加到100的和
程序示例1:
#include <stdio.h>
int main()
{
int sum = 0;
int i = 0;
while (i <= 100) //只要i<=100这个条件成立,大括号里面的内容就要执行
{
sum = sum + i;
i = i + 1;
}
printf("i = %d\n", i);
printf("sum = %d\n", sum);
return 0;
}
输出结果:
i = 101
sum = 5050
因为只要i<=100这个条件成立,大括号里面的内容就要执行,大括号里面的内容执行完之后,还要回来判断while里面的条件。
while知识点
1、while循环体里面的内容可以不执行,比如while(0);
2、while循环体里面的内容可以一直执行不停止,比如while(1);
3、if语句可以看成最多执行1次的循环体
4、if语句和while可嵌套,实现更复杂的功能
if与while嵌套
求1000以内能被3整除的正整数之和
分析:
1、要遍历1到1000这1000个数;
2、要选择能被3整除的数
程序示例2:
#include <stdio.h>
int main()
{
int i = 1;
int sum = 0;
while (i <= 1000) //遍历1到1000所有的整数
{
if (i % 3 == 0) //判断是否能被3整除
{
sum = sum + i;//能整除的数就加起来
}
i++; //i要自增加一个
}
printf("i = %d\n", i);
printf("sum = %d\n", sum);
return 0;
}
while语句练习
求 ,累加和≥10000为止,输出累加和,输出累加式中的项数i和最大的数
程序示例3:
#include <stdio.h>
int main()
{
int i = 1;
int n = 0; //记录循环次数
int sum = 0; //记录和
int an = 0; //记录停止的项
while (sum <= 10000)
{
an = (2 * i) * (2 * i);
sum = sum + an;//(2*i)的平方
i++; //i要自增加一个
n++;
}
printf("n = %d\n", n);
printf("an = %d\n", an);
printf("i = %d\n", i);
printf("sum = %d\n", sum);
return 0;
}
编写程序,求出2-100之内所有的质数,并打印出所有的质数
质数:只能被1和自己整除
程序示例4:
#include <stdio.h>
int main()
{
int i = 2;
while (i <= 100) //遍历2到100内所有的数
{
int flag = 0; //标记
int j = 2;//从2到自己,这之间还有没有能被自己整除的数
while (j < i)
{
if (i % j == 0) //判断有没有能被自己整除的数
{
flag ++; //有就+1标记一下
}
j++; //遍历2到i
}
if (flag == 0) //这个标记还为0,说明没有能被整除的,那就是质数了
{
printf("i = %d\n", i); //打印出质数
}
i++; //i要自增加一个,为了遍历
}
return 0;
}
循环结构在编程中用的非常多,循环结构也有多种方式
do... while
do
{
//do something;
} while(条件)
不管条件是不是真,都执行一遍do里面的语句;
再来判断条件是否为真,为真的话继续执行do里面的语句,为假就执行后面的语句;
从键盘中输入数据,并请输入数据的和,知道和大于100为止
程序示例5:
#include <stdio.h>
int main()
{
int sum = 0;
int input = 0;
do
{
printf("请输入数据:");
scanf_s("%d",&input);
sum = sum + input;
} while (sum <100);
printf("sum = %d\n",sum);
return 0;
}
for循环
for(0.初始化循环变量;1.循环条件;3.改变循环条件)
{
2.循环体;
}
执行步骤就是:
0、初始化循环变量
1、判断循环条件
2、执行循环体
3、改变循环条件
理论上for循环式最规范的循环结构,本质上与while是一样的。