C语言的分支和循环语句你了解吗
1、什么是语句?
C语句可分为以下五类:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。
可分成以下三类:
1. 条件判断语句也叫分支语句:if语句、switch语句;
2. 循环执行语句:do while语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。
2、分支语句(选择结构)
2.1、if语句
语法结构:
//单分支 if(表达式) 语句; if(表达式) 语句1; else 语句2; //多分支 if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3;
else的匹配:else是和它离的最近的if匹配的。
2.2、switch语句
switch是一种多分支语句
switch(整型表达式) { case 整形常量表达式: 语句; }
2.2.1、switch语句中的break
switch语句需要搭配break才能实现真正的分支
#include <stdio.h> int main() { int day = 0; switch(day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; } return 0; }
当需要:
1. 输入1-5,输出的是“weekday”;
2. 输入6-7,输出“weekend”
所以我们的代码就应该这样实现了:
#include <stdio.h> //switch代码演示 int main() { int day = 0; switch(day) { case 1: case 2: case 3: case 4: case 5: printf("weekday\n"); break; case 6: case 7: printf("weekend\n"); break; } return 0; }
break语句 的实际效果是把语句列表划分为不同的分支部分。
编程好习惯
在最后一个 case 语句的后面加上一条 break语句。(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句)。
2.2.2default子句
当所有case条件都不满足时就会执行default语句
3、循环语句
3.1、while循环
while 语法结构
while(表达式) 循环语句;
while语句执行的流程:
在屏幕上打印0-10的数字。
#include<stdio.h>int main(){ int i = 0; while(i<=10) { printf("%d ", i); i = i+1; } return 0;}#include<stdio.h> int main() { int i = 0; while(i<=10) { printf("%d ", i); i = i+1; } return 0; }
3.1.1while中的break和continue
break
:跳出整个循环
continue
:跳过一次循环
3.2、for循环
3.2.1、语法
for(表达式1; 表达式2; 表达式3) 循环语句;
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
for循环的执行流程
3.2.2、break和continue在for循环中
与while循环相同
3.2.3、for语句的循环控制变量
1、不要在循环体内修改循环变量防止死循环
2、采用前闭后开区间写法
for(i=0;i<10;i++) {}
3.2.4、for循环的变种
#include <stdio.h> int main() { for(;;) { printf("hehe\n"); } //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问 题。 return 0; }
3.3do…while()循环
3.3.1、语法
do 循环语句; while(表达式);
3.3.2、执行流程
3.3.3、 do语句的特点
先执行一次循环体
3.3.4、break和continue
同for循环
4、goto语句
语法格式:
again: goto again;
使用场景:
跳出多层循环