提前说一下哦,C语言是结构化的程序设计语言,结构是说顺序结构、选择结构、循环结构
if语句
if
语法形式为下
if(表达式)
语句
当表达式为 真 时,语句执行,反之为 假 时语句不执行。
那何谓 真 何为 假呢?
c语言中,0为假,非0为真。简单来讲,表达式的结果为0时,语句不执行,反之执行。
else
if—else语法形式如下:
if(表达式)
语句1
else
语句2
分支中包含多条语句
注意,if与else语句中默认都只控制一条语句。那怎么如果想控制多条语句,可在if/else后加入{ },从而控制多条语句—这个块也叫程序块,或者复合语句。
嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
格式如下
1️⃣
if(表达式1)
语句1
else if(表达式2)
语句2
...
else
语句n
2️⃣
if(表达式1)
{
if(表达式2)
语句1
else
语句2
}
else
语句3
悬空else问题
对于上面的多个if—else,他们到底怎么执行的呢?
可以简单记忆为,else 总是跟最接近的 if 匹配。
关系操作符
c语言中用于比较的表达式,称为**“关系表达式”,里面运用的运算符自就叫做“关系运算符”**。
例:
• > ⼤于运算符
• < ⼩于运算符
• >= ⼤于等于运算符
• <= ⼩于等于运算符
• == 相等运算符
• != 不相等运算符
关系表达式通常返回 0 或 1 ,表⽰真假。
注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。有时候,可能会不⼩⼼写出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。
if(x=3)
...
上⾯⽰例中,原意是 x == 3 ,但是不⼩⼼写成 x = 3 。这个式⼦表⽰对变量 x 赋值 3 ,它的返回值为 3 ,所以 if 判断总是为真。
另⼀个需要避免的错误是:多个关系运算符不宜连⽤。
条件操作符
条件操作符也叫三目操作符,需要接受三个操作数。
形式如下:
exp1?exp2:exp3
条件操作符的计算逻辑是
如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果
如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
QwQ可以来简化 if—else
逻辑操作符:&&,||,!
逻辑运算符提供逻辑判断的功能,主要有下面三个运算符:
• ! :逻辑取反运算符(改变单个表达式的真假)。
• && :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
• || :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
提一嘴,c语言中,非0表示真,0为假。
逻辑取反运算符!
逻辑与运算符
&& 就是与运算符,也是并且的意思, && 是⼀个双⽬操作符,使⽤的⽅式是 a&&b , && 两边的表达式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。
逻辑或运算符
与&&相似,但是,||两边的表达式有一个真的就ok
短路
C语言中 逻辑运算符 有一个特点,总是先对左侧的表达式求值,再对右侧表达式求值。【目的是为了减小机器的运算量】
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为**“短路”**。
比如:&&左边表达式不在条件内,右边的表达式就不用再求值。||也是一样的道理,左边表达式满足条件了,右边表达式就不用再去求值了。
像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值。
switch语句
switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。
switch (expression) {
case value1: statement
case value2: statement
default: statement
}
根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀。
注意:
• switch 后的 expression 必须是整形表达式
• case 后的值,必须是整形常量表达式
• case 和后边的数字之间必须有空格
• 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。如果不加,就会继续执行下面的case语句。【可把case想象成入口,break想象成出口】
• default 与 case,位置没固定要求,放在前面后面都可。
• break 也不是每个 case 语句都得有,得根据实际情况来。例如:
#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;
}
return 0;
}
while循环
形式:
while(表达式)
语句 //如果后面条件满足,会死循环执行语句
如果想包含更多的语句,可以加上{ }。
• 一个 break 只能跳出一个 switch
for循环
形式:
for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想包含更多的语句,可以加上⼤括号
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
do-while循环
break和continue语句
在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中
提供了break与continue 两个关键字,就是应⽤到循环中的。
所以break 的作⽤就是永久的终⽌循环,只要break 被执⾏,break 外的第⼀层循环就终⽌了。那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤break 来完成我们想要的效果
continue 是继续的意思,在循环中的作⽤就是跳过本次循环中continue后面的代码,继续进行下⼀次循环的判断。
goto语句
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
标签:语句,case,else,运算符,循环,break,表达式,分支
From: https://blog.csdn.net/H2034562095/article/details/143056477