循环分为两种
1,出口循环,指运行一次后检测
2,入口循环,进入循环前检测一次
循环满足的条件
1,初始化变量
2,判断条件
3,值的递变
1.while循环
模型;
初始化变量
while(判断条件)
{
执行代码
递变值
}
do
代码演示;用于检测两个数是否输入正确
#pragma warning(disable:4996) //防止scanf返回值被忽略
#include <iostream>
int main()
{
int a, b;
while (scanf("%d%d", &a, &b) == 2)
{
printf("%d\n", a + b);
}
return 0;
}
while (scanf("%d%d", &a, &b) == 2)理解;
scanf函数录入成功会返回一个字1,如果录入错误则会返回0
例如两个数录入成功会返回2(1+1),数字间有空格
for循环(相较于while更加精简,但需要更强大逻辑性)
模型;
for(初始化变量;判断条件;递变值)
{
执行代码
}
/*for循环在数组中实现赋值,打印,求和*/
#pragma warning(disable:4996)
#include<stdio.h>
#define SIZE 10 //定义常量,10个数字
int main()
{
int index, score[SIZE]; //用于数字编号和储存数字
int sum = 0; //用于数字相加求和
float average; //平均数
printf("请输入10个数,输入一个数按下Enter确定\n");
/*循环十次读取数字,index 0到9循环10次,刚好又是数字在数组中的编号*/
for (index = 0; index < SIZE; index++)
scanf("%d", &score[index]);
printf("刚才输入的数字为\n");
/*打印刚才的数字,用于确定*/
for (index = 0; index < SIZE; index++)
printf("%d ",score[index]);
printf("\n");
/*利用循环数字求和*/
for (index = 0; index < SIZE; index++)
sum += score[index];
average = (float)sum / SIZE; //形式转换由整数变成浮点数做分子,使平均数保留小数
printf("这几个数的和为%d,平均数为%f",sum,average);
return 0;
}
do while循环(执行一次语块再进行检验是否进入下一次循环)
模型;
初始化变量
do{
执行代码
递变值
}while(判断条件)
/*利用do while设立登录密码*/
#pragma warning(disable:4996)
#include <iostream>
int main()
{
int code;
printf("请设置密码;");
scanf("%d/n", & code);
int code_entered;
do
{
printf("请输入密码");
scanf("%d/n", &code_entered);
} while (code != code_entered);
printf("密码输入正确");
return 0;
}