本章概述
while循环
- 概述 :C语言提供了3种循环语句,
while
就是其中一种。另外2种分别是for
和do-while
。接下来介绍while语句。while语句和if语句很像的,它的格式如下:
while( 条件是否为真)
{
代码......
}
while
的括号里面放的是条件是否为真,条件为真则就执行while里面的代码,否则就不执行 。和if
的用法一模一样。接下来给大家举一个简单的例子。
描述:输入一个数值
输出:如果这数值大于5,则就循环打印hhh。
进行代码展示:
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
while (num > 5) //条件成立就循环打印,否则就不打印
{
printf("hhh");
}
return 0;
}
结果运行图展示:
- 小TIP :当执行的代码只有一条语句的时候,我们可以不用加
{ }
。 - 执行图展示 :
先判断while括号里面的表达式(条件)是否为真,表达式的结果为0(条件为假),循环直接结束;表达式的结果不为0(条件为真),则就执行里面的程序,在返回来进行条件的判断,判断是否条件成立。进行代码展示:
用while循环打印出1~10数值
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
while (i < 10) //条件不成立的时候,就结束循环
{
i++;
printf("%d ", i);
}
return 0;
}
结果运行图展示:
for循环
- 概述 :for循环是三种循环中使用频率最多的一个语句。给大家介绍一下它的结构形式:
for (表达式 1 ; 表达式 2 ;表达式 3 )
{
语句;
}
表达式 1: 用于变量的初始化。
表达式 2:用于循环结束的条件判断。
表达式 3:用于调整循环变量。
- for循环的流程图 :
- 进行代码展示:
javascript
#include <stdio.h>
int main()
{
int i=0;
for(i=0;i<4;i++)
{
printf("hhh");
}
return 0;
}
当执行到for循环语句的时候,先执行 i = 0;,接着判断 i 结果是否小于4。条件成立就执行for循环里面的语句。当for循环里面只有一句代码时,{ }
也可以省略不写。
do-while循环
这个语句和while的用法很类似,结构如下:
do
{
语句1;
语句2;
......
}while(判断条件);-----和while一样,条件为假就跳出循环。
它和while有一点不同------这个语句上来就先执行代码,执行到最后再判断while(条件)是否成立。大家要注意,在do--while后面是有';
'的。进行代码展示:
简单演示打印10个数字
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf("%d ", i);
} while (i < 10);
return 0;
}
结果运行图:
break和continue语句
- 前情提示 :break和continue语句适用于循环里面的。
- break: 它的意思就是打破。它用在switch语句和循环语句里面。在循环语句里面会打破当前的循环,它每次只会打破一层循环,不会一下子打破所有的循环。进行代码展示:
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d ", i);
if (i == 5)
break; //当i值为5时,就会打破当前的循环
}
return 0;
}
结果运行图:
打印到5时,就跳出了循环了,后面的信息就不再打印了。
- continue: 它的意思就是继续,再开始。它会先暂时跳过continue后面的代码,不会打破当前的循环。它不像break那么绝情。我们就用上面的代码进行continue改造,进行代码展示:
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (i == 5)
continue;
printf("%d ", i); //i为5时,不再打印数值5。
} //但不会打破循环,会继续打印往后的数值
return 0;
}
结果运行图:
大家可以对比一下这俩个语句的区别,还是很明显的。
循环嵌套
循环嵌套就是循环里面还有循环。在这里给大家写个题目进行演示:进行题目展示:
找出100~200之间的素数,并打印在屏幕上。
注:素数⼜称质数,只能被1和本⾝整除的数字。
题目解析:
1: 首先我们先产生100到200之间的数字,这就要用到循环了。
2: 我们再对每个数字进行素数的判断。
3: 用每个数字除以2~自身之间的数字,能被整除就不是素数,否则就是素数。2~自身之间的数字需要用
到循环产生。
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int y = 0;
for (i = 100; i <= 200; i++)
{
int falge = 1; //假设是素数
for (y = 2; y < i; y++)
{
if (i % y == 0)
{
falge = 0; //不是素数就会赋值falge=0,跳出循环
break;
}
}
if (falge == 1) //为素数就睡打印出来
printf("%d ", i);
}
return 0;
}
结果运行图:
goto语句
咱们在前面讲过了,C语言是一种结构化语言 。它需要各种语言的支持,分别是分支,循环和转向语句。前面俩咱们已经讲过了,接下来要讲的goto语句就是转向语句。它的结构如下:
goto 标志 ;
......
标志:
注解:goto后面的 标志 可自定义,goto语句会自动跳转到我们标志好的代码处。
进行代码展示:
我们循环打印"hhhh"字符串
javascript
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
next: //标志词可自定义
printf("hhhh\n");
goto next; //程序遇到goto语句时,会自动找到标志处的位置(next)
return 0;
}
结果运行图:
- 注意 :goto语句只能在同一个函数里面用,不能从一个函数体里面跳转到另一个函数体里面。当我们有多层循环嵌套的时候,中间遇到紧急情况,我们需要跳转的时候,就可以用goto语句立马跳转到我们的标志处,这比break迅速多了,因为break一次只能打破一个循环体。
- 提醒 :goto语句不要随便乱用,因为只要我们打好标志点,它就可以随意跳到转,这就会导致代码运行发生混乱。所以,要谨慎使用。
彩蛋时刻!!!
歌曲:《少年和月光》
每章一句:"再小的努力,乘以365都很明显 "
感谢你能看到这里,点赞+关注+收藏+转发是对我最大的鼓励,咱们下期见!!!