壹 while 循环
1.1 if 和 while 的对比
语法形式:
① if
if (表达式)
语句
② while
while (表达式)
语句 //如果循环体想要包含更多的语句,可以加上大括号
首先上来就执行判断表达式,表达式值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断是否执行下一次循环判断。
练习:输入一个正的整数,逆序打印这个整数的每一位
例如:输入:1 2 3 4, 输出:4 3 2 1;
输入:5 2 1, 输出:1 2 5
代码演示如下:
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while (n)
{
printf("%d ", n % 10);
n /= 10;
}
return 0;
}
n % 10 得到 n 的最低位;n / 10 去掉 n 的最低位,找出倒数第二位,通过不断循环取余和除法操作,在 n 变为0之前就能得到所有位。
贰 for 循环
2.1 我们为什么要使用 for 循环
对循环来说,以上①②③部分是最重要的,而当程序很复杂时(体量很大),在 while 语句中这三部分会比较分散,此时就不利于维护循环,程序很容易失去控制,所以又出现了 for 循环,从形式上 for 循环更具优势。
2.2 语法形式
for 循环时三种循环使用最多的,形式如下:
for (表达式1; 表达式2; 表达式3)
语句 //如果循环体想要包含更多的语句,可以加上大括号
- 表达式1:用于循环变量的初始化
- 表达式2:用于循环结束条件的判断
- 表达式3:用于循环变量的调整
对于 for 循环,表达式1只执行一次
for 循环的初始化、判断、循环调整三个表达式都可以省略,但是判断部分省略,要注意:如果省略了判断部分,那么默认判断部分恒为真
叁 do...while 循环
语法形式:
do {
语句
} while (表达式)
循环至少执行一次
一般 do...while 使用在循环体至少执行一次的场景下,所以较少一些。
肆 break 和 continue
4.1 break 的作用
一个 break 只能跳出一层循环。
break 的作用就是跳出循环,不管循环后期还有多少次,只要 break 被执行,就直接停止。
4.2 continue 的作用
continue 的作用就是跳过本次循环 continue 后面的代码,直接去判断部分。
伍 goto 语句
C语言提供了一种非常特别的语法,就是 goto 语句和跳转标号,goto 语句可以实现在同一个函数内跳转到设置好的标号处。
缺点:
goto 语句如果使用不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以建议是能不用尽量不去使用,但 goto 语句也不是一无是处
优点:
在多层循环的代码中,如果想快速跳出,使用 goto 就非常方便。
使用伪代码举例:
for (...)
{
for(...)
{
for(...)
{
if (disaster)
goto happy;
}
}
}happy
本来 for 循环想提前退出要使用 break ;一个 break 只能跳出一层 for 循环,如果三层 for 循环嵌套,就需要使用三个 break 才能跳出循环,所以在这种情况下,我们使用 goto 语句就会更加快捷