循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构成单元。
目录
一、while语句
二、do...while语句
三、for语句
四、break语句
五、continue语句
六、goto语句
七、嵌套循环结构
一、while语句
格式如下:
while(表达式)
{
循环体语句
}
先计算表达式的值,如果表达式为真,则执行while语句中的循环体语句,然后再次计算表达式的值;如果表达式为真,则再次执行循环体语句;依次循环,直到表达式的值为假时,结束循环。
例子:
用while语句输出0到9并求和。
#include<stdio.h>
int main()
{
int i = 0;
while (i < 10)
{
printf("%d", i);
++i;
}//结果为0123456789
return 0;
}
#include<stdio.h>
int main()
{
int i = 0, sum = 0;
while (i < 10)
{
sum += sum + i;
i++;
}
printf("sum=%d\n", sum);
return 0;
}
注意:
1、如果第一次计算while后面的表达式时,结果为假,则循环体一次也不执行。
2、在循环体中要有是循环趋向于结束的语句,否则就会形成死循环。
二、do...while语句
格式如下:
do
{
循环体语句
}while(表达式);
先执行循环体语句,再判断循环条件是否成立。
先执行一次循环体语句,然后计算表达式,如果表达式的值为真,则再执行一次循环体语句,如此循环,直到表达式为假,结束循环。
注意:
1、do...while语句的循环体至少可以被执行一次。
2、在循环体中一定要有趋向于结束的语句,否则会形成死循环。
三、for语句
格式如下:
for(表达式1;表达式2;表达式3)
{
语句
}
例子:
输出0到9
#include<stdio.h>
int main()
{
int i ;
for (i = 0; i < 10; ++i)
{
printf("%d\n", i);
}//结果为0123456789
return 0;
}
注意:
1、表达式1一般为循环变量赋初值。
2、 表达式3一般为改变循环变量的值。
猜数字游戏
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned int)time(NULL));//每次随机数不一样
/*
产生随机数:
1、导入头文件 stdlib.h time.h
2、添加随机数种子
3、获取随机数
*/
int value = rand() % 100;//100以内的随机数
int num;
for (;;)
{
printf("请输入一个数字:\n");
scanf("%d", &num);
if (num > value)
{
printf("您输入的数字大了;\n");
}
else if (num < value)
{
printf("您输入的数字小了;\n");
}
else
{
printf("恭喜您,猜对了。\n");
break;
}
}
return 0;
}
四、break语句
结合while语句格式如下:
while(表达式)
{
语句1
if(条件)
break;
语句2
}
break语句可提前结束循环,从循环体内跳到循环外面,接着执行循环语句后面的语句。
五、continue语句
结合while语句格式如下:
while(表达式)
{
语句块1
if(条件)
continue;
语句块2
}
continue的作用是结束本次循环,接着进行下一次是否执行循环的判定。
六、goto语句
格式如下:
goto 语句标号;
goto语句被称为无条件转向语句。
程序流程从当前位置无条件的转到“语句标号”所指定的位置去执行。
七、嵌套循环结构
在一个循环体内部,可以包含另一个完整的循环结构。
某一种循环可以自身嵌套,也可以不同种类的循环互相嵌套。
例子:
#include<stdio.h>
int main()
{
int i, j;
for (i = 0; i < 10; ++i)
{
for (j = 0; j < 5; ++j)
{
printf("i=%d,j=%d\n", i, j);
}
}
//共执行了50次
//外层执行一次,内层执行一周
return 0;
}
电子时钟 从00:00:00 到 23:59:59
#include<stdio.h>
#include<windows.h>
int main()
{
//电子时钟 从00:00:00 到 23:59:59
int i, j, k;//i 表示时针,j 表示分针,k 表示秒针
for (i = 0; i < 24; ++i)
{
for (j = 0; j < 60; ++j)
{
for (k = 0; k < 60; ++k)
{
system("cls");//清屏
printf("%02d:%02d:%02d\n", i, j, k);
//不足两位数的用0补位 01:02:09
Sleep(800);//降低输出速度
}
}
}
return 0;
}
九九乘法表
#include<stdio.h>
int main()
{
//九九乘法表
int a, b;
for (a = 1; a <=9;++a)
{
for (b = 1; b <= a; ++b)
{
printf("%d*%d=%d\t", b, a, a*b);
}
printf("\n");
}
//外层控制行,内层控制列
return 0;
}
到这里结束了。😊😊😊