C语⾔是结构化的程序设计语⾔,这里的结构分为{
顺序结构:正常顺序的代码结构
选择结构:if,switch(也可以称为分支结构)
循环结构:while,for,do...while
}
一.选择结构
1.if语句
1.1 if
表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏
在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。
1.2 else
如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们要清楚的判断是奇数还是偶数怎么表⽰呢?
表达式如下:
例1:
输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。
1.3分支控制多条语句
默认if 和 else 语句中默认都只控制⼀条语句,⽐如:
1.4嵌套语句
在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:
1.5悬空else问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
2.switch语句
switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重
的 else if 改成更易⽤、可读性更好的形式。
二.操作符
操作符也称运算符,操作符分为{
算术操作符
赋值操作符
单目操作符
关系操作符
条件操作符
逻辑操作符
}
2.1算术操作符
算术操作符分为:+, -, *, /, %。
+ 和 - ⽤来完成加法和减法。
运算符 * ⽤来完成乘法。
运算符 / ⽤来完成除法。
运算符 % 表⽰求模(余)运算,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
注:负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
例如:
上⾯⽰例中,第⼀个运算数的正负号( 11 或 -11 )决定了结果的正负号。
2.2赋值操作符
赋值操作符分为:连续赋值与复合赋值
连续赋值如:
复合赋值:在写代码时,我们经常可能对⼀个数进⾏⾃增、⾃减的操作但为了方便C语⾔给提供了这样的写法如:
简便运算:
2.3单目操作符
++、--、+(正)、-(负) 为单⽬操作符
++与--分为前置与后置
前置++的计算⼝诀:先+1,后使⽤
后置++的计算⼝诀:先使⽤,后+1如:
而--与++其意相同
2.4关系操作符
分为:
> :⼤于运算符
< :⼩于运算符
>= :⼤于等于运算符
<= :⼩于等于运算符
== :相等运算符
!= :不相等运算符
2.5条件操作符
条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:
条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果。 (可以运行简单if分支语句)
2.6逻辑操作符
逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符:
! :逻辑取反运算符(改变单个表达式的真假)。
&& :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
|| :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
三.循环结构
3.1while循环
while循环的表达式如下:
while语句的执⾏流程:
⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。
3.2for循环
for循环表达式:
for循环执行流程:
⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。
3.3do while循环
do while循环表达式:
do while循环流程:
四.break和continue语句
在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了 break 和 continue 两个关键字,就是应⽤到循环中的。
• break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执
⾏。
• continue 的作⽤是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有
所差异的。