文章目录
前言
今天讲一下分支和循环的内容
C语言是结构化语言,这里的结构有3种结构是顺序结构,循环结构,分支结构
用if 、Switch实现分支结构用for、while、do while实现循环结构
3步让你看懂分支语句和循环语句
制作不易,请点个关注
一、if语句
语法形式:
if(表达式)
{
语句体;
}
else if(表达式)
{
语句体;
}
else
{
语句体;
}
上述形式是最复杂的形式,else if可以有多个。
语句体:当为一个语句时,例如一个printf语句,中括号可以省略不写。
表达式:先计算表达式为真(非0)还是假(0)为假时不执行该语句就执行else语句。
最简单的是只有一个if语句。其次是if else语句,当if表达式为假时就执行else语句。
下面是一道if语句的题目:
#include <stdio.h>
2 int main()
3 {
4 int a = 0;
5 int b = 2;
6 if(a == 1)
7 if(b == 2)
8 printf("hehe\n");
9 else
10 printf("haha\n");
11 return 0;
12 }
上述代码中什么都不打印,因为else总是与最近的if匹配。
那个else语句与if(b == 2)匹配,因为不等于1所以不执行if(b == 2)语句,直接执行return 0.
二、逻辑运算符
取反运算符(!)
例:当a为真时 (!a)为假
逻辑且运算符(&&)
例:a&&b都为真时才为真,只要有假就为假
逻辑或操作符(||)
例:a||b只要有一个是真就为真,全为假才为假。
!!当并且(&&)与或(||)第一个操作数能反映整体的结果时,后面的表达式则不计算。
例:int a =1 ;int b =0;
if(b&&a)因为b为0,所以这个表达式为假,不计算后面那个a.
if(a||b)因为a为真,所以表达式为真,就算后面那个b为假也行,因为前面为真后面那个不参与计算。
三、关系运算符
大于(>) a>b
小于(<) a <b
大于等于(>=)
小于等于(<=) a <=b
相等(==)
不等于(!=) a != b
!!!注意:这里的相等是和赋值不一样,赋值是=。
表达式为真则返回1,为假时则返回0.
多个关系运算符不适合连续用
例:if(a<b<c)//这种是错误的。
因为先计算a<b,结果为0或1,再由0或1和c比较
if(a<b&&b<c)//应该采用这种写法
四、条件操作符
exp1?exp2:exp3
其中的exp1,exp2,exp3是表达式。先执行exp1如果为真则计算exp2的值,为假就计算exp3的值。
五、Switch语句
语法形式
switch(表达式)//表达式结果必须是整数
{
case (整形常量表达式):
语句体:
case (整形常量表达式):
语句体:
default :
语句体;
}
上面的case语句都不执行才执行default语句和if语句类似。
Switch中的case语句和default语句没有顺序要求,可以把default语句放第一个
Switc语句中的break
break的意思是跳出循环;
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误\n");
}
return 0;
}
上述代码在输入1 时,因为1里面没有break语句一直往下执行到5才跳出循环,输入5时打印后·直接跳出
所以在写代码时要注意break的运用,break的运用才能实现Switch的分支效果。
六、while循环
语法形式:
while(表达式)
{
语句体;
}
如果表达式里面的内容一直为真(非0),则无限循环。
七、for循环
语法形式:
for(表达式1:表达式2:表达式3)
表达式1:初始化语句
表达式2:判断语句
表达式3:变量调整语句
{
语句体;
}
首先执行1,然后执行2,如果结果为0循环就结束。结果为真就执行语句体,然后执行3,接着在执行2,为真就执行语句体,一直循环,直到执行2为假跳出循环。
while和for的对比


八、do while循环
语法形式:
do
{
语句体;
}while(表达式);
与while的唯一区别就是do while先执行一次再判断。而while是先判断。
九、break语句和continue语句
之前说过break语句是跳出循环的意思。
break还能在while循环和for循环 以及do while循环中使用
continue是跳过这一次循环开始下一次循环。
continue在while循环和for循环 以及do while循环中使用(不能在Switch中使用)。
十、goto语句
语句形式:
goto 语句体;
#include <stdio.h>
int main()
{
printf("hehe\n");
goto ABC;
printf("haha\n");
ABC:
printf("跳过了haha的打印\n");
return 0;
}
goto语句是直接跳到这个ABC的位置,如果像for循环中有多个嵌套就需要多个break语句才能跳出
而只需要一个goto语句就行了。
1106






