目录
1.if语句
2.关系操作符
3.条件操作符
4逻辑操作符:&&,II,!
5.switch语句
6.while循环
7.for循环
8.do while循环
9.break和continues语句
(有错误的地方请大佬指正)
正文
1.if语句
if的语法形式:
if(表达式)
语句
如果表达式为真(非零),则语句执行,若为假(0)则不执行
if …else的用法:
当表达式结果与if的相反时(为0),还想执行一个语句时用else语句
if(表达式)
语句1
else
语句2
注意:1.if和else语句中都默认控制一个语句,如果想要控制多个语句,可以使用{}形成代码块
2.else总是与最近的if匹配
嵌套if:在if else 语句中,else可以与if语句连用,构成多重判断(注意 else if是表示我可以去判断别的条件,只是和if的条件不同而已,但是if...... else就是就是与if完全相反的条件)
2.关系操作符
c语言中用来比较的表达式称为关系表达式:(>,<,>=,<=,==,!=)但并不全是比较大小,如!=和==;关系表达式返回0和1,表示真假,常用于if和while结构中
注意:1.赋值号=与相等运算符==是两个不一样的运算符
2.多个运算符不宜连用,若连用时从左向右计算,用的是返回值与后面的数进行比较,如下例
3<1-》结果为0,0<=0为真-》返回值为1,固选择A
3.条件操作符
条件操作符又叫三目操作符,需要三个操作数.
形式为:exp1?exp2: exp3(若1为真,执行2,若为2执行3)
举个例子:使用条件表达式实现找两数中较大值
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = a>b ? a : b;
printf("%d\n", m);
return 0;
}
4.逻辑操作符(与或非)
上述关系操作符不适于连用,若实在要连用时可用逻辑操作符来实现,中学时都学过与或非的逻辑关系语句,在c语言中怎么表达呢?
- ! :逻辑取反运算符(改变单个表达式的真假)
- &&:与运算符,就是并且的意思
- II:或运算符,就是或者的意思
逻辑关系和高中时期讲的相同,故不多赘述
注:C语言中,非0表示真,0表示假
- 短路
C语言逻辑运算符有一个特点,它总是先对左侧表达式求值,再对右边的表达式求值。
如果左边表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进行计算的运算叫做短路取值。(简而言之,&&时左操作数结果为0️⃣;II时左操作数非0️⃣)
例:计算代码输出的结果
依次输出1 2 3 4
//1 3 3 4
5.switch 语句
除了if语句外,c语言还提供了switch语句来实现分支结构.
switch 语句是一种特殊形式的if... else结构,用于判断条件有多个结果的情况
以上代码中,根据表达式不同的值,执行相应的case分支,如果找不到对应的值,就执行default分支.
注:switch后的表达式必须是整型表达式
case后的值,必须是整型常量表达式
case和后边的数字之间必须有空格
每一个case语句中的代码执行完成后,语言加上break, 才能跳出这个switch 语句.
- switch 语句中的break
如下例,如果没有break会是什么结果呢?
我们发现,结果四个全部打印了,这是为什么呢?
原因:switch 语句也是有分支效果的,只有在switch 语句中使用break 语句才能跳出switch语句,如果某一个case语句后边没有break语句,代码会继续往下执行,有可能执行其他case语句中的代码,直到遇到break语句或者switch 语句结束.比如以上代码就执行了其他case中的语句.
所以在switch 语句中break 语句是非常重要的,能实现真正的分支效果.
当然break 也不是每个case 语句中都得有,要根据实际情况决定.
- switch 语句中的default 语句
在使用switch 语句时,当switch 后表达式的值无法匹配case语句时,这个时候要么不做处理,要么就在switch 语句中加入default 子句.
注
default 和case语句顺序没有要求,想怎么放怎么放,不过我们通常把default子句放在最后处理.
6.while循环
C语言一共提供了三种循环语句,while就是其中一种(高中数学学过的“当”型结构:当(表达式为真时)执行语句),与if语句非常相似。
其形式为:while(表达式)
语句;
当表达式为真时,将会实现循环效果。
- while语句的执行流程
简而言之可以理解为当怎么样(表达式)时,就怎么做(后面的语句)
7.for循环
语法形式
for(表达式1;表达式2;表达式3)(注意是分号,新手经常打成逗号)
语句;
表达式1:用于循环变量的初始值
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
- for循环的执行流程
8.do-while循环
语法形式:
do
语句;
while(表达式)
其实就是高中数学中的直到型结构(执行语句直到表达式==0)
- do while循环的执行流程
9.break continue语句
- break的作用是永久性终止循环,只要遇到了break就会跳出循环
-
continue的作用是跳过本次循环continue后面的代码
for和while中的break语句作用是一样的,而continue有一些不同,如下例子
for循环中的continue的作用是跳过本次循环中continue后的代码,直接去到循环的调整部分。当某个条件发生时,本次循环无需再执行后续某些操作的时候,就可以用continue来实现