今天讲了运算符及其优先级,两种条件选择语句,三种循环语句。
scanf在格式控制里不能输入\n
1. 在空格,或按回车,跳格键;
2. 按指定的宽度结束,如%3d,只取3列;
3. 遇到非法输入。
关系运算就是比较运算。
C语言中有6种关系运算符:
关系运算符的优先级高于赋值运算符。
关系运算符的优先级低于算术运算符。
如
c>a+b; 《---》 c>(a+b)
a>b==c; 《---》 (a>b)==c
a==b<c 《---》 a==(b<c)
a=b>c 《---》 a=(b>c)
用关系运算符将两个表达式链接起来的式子称为关系表达式。
关系表达式的值是一个逻辑值,即真或假。
C语言提供3种逻辑运算符 !(非) 高
1. && 逻辑与 算术运算符
2. || 逻辑或 关系运算符
3. ! 逻辑非 &&和||
赋值运算符 低
!》&& 》|| 即!是三者之间是最高的
逻辑运算符中的&&和||低于关系运算符,!高于算术运算符
用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。
逻辑表达式的值应该是一个逻辑量真或假。
条件运算符
表达式1?表达式2:表达式3
先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个表达式的值。
if选择结构
if(表达式) 语句1 else 语句2
switch 多分支选择结构
switch(表达式){
case 常量表达式 1: 语句1; break;
case 常量表达式 2: 语句2; break;
case 常量表达式 3: 语句3; break;
case 常量表达式 4: 语句4; break;
…
case 常量表达式 n: 语句n; break;
defaukt : 语句n+1;
}
1.switch 后面括号内的表达式,其值可以是整型,字符型,枚举型
2.当表达式的值与某一个case后面的常量表达式的值相等的时候,就执行case后面的语句若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。
3.每一个case常量表达式的值必须是不想的的,否则就会出现互相矛盾的现象
4.执行完一个case后面的语句后,流程控制转移到下一个case继续执行。case常量表达式只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句是,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
while循环结构
while(表达式) 语句
当表达式为非0值时,执行while语句中的内嵌语句。特点是先判断表达式,后执行语句。
do while循环结构
do
循环体语句
while(表达式);
先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(真)时,返回重新执行循环体语句,如此反复,知道表达式的值等于0位子,此时循环结束。
while 与do while 的区别:
当while后面的表达式的第一次的值是“真”时,两种循环得到的结果相同;否则,二者结果不相同。
while是先判断后执行循环;do while是先执行后判断循环。
for循环结构
for(表达式1;表达式2;表达式3)语句
for(循环变量赋初值;循环条件;循环变量增值)语句
执行过程:
1. 求解表达式1;
2. 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第3步;
3. 求解表达式3;
4. 转回到上面第2步骤继续执行;
5. 循环结束,执行for语句下面的语句;
循环嵌套最多是3层。