选择结构程序设计
一、关系运算符
6级(①~④)/7级(⑤⑥) 自左向右 同样属于int型
逻辑假:“0” 逻辑真:所有非“0”都为真逻辑假 “0” 逻辑真 所有非“0”都为真
二、3种逻辑运算符
(1)与:&& (相当于AND) 双目 自左向右 属于int型
(2)或:// (相当于OR) 双目 自左向右 属于int型
(3)非:! (相当于NOT) 单目 自右向左 属于int型
C语言中不可写为连续比较形式! eg:a <= x <= b应写为:x >= a && x <= b
表达式截断:目的:提高程序运行速率
eg:
#include<stdio.h>
int main (void)
{
int i=2, j=-3;
int t;
t=i < 0 && ++j;
printf("%d\n",j);
return 0;
}
该程序输出j=-3 (原因:在&&运算符中“一假全假”,而此时i = 2,使得i < 0判定为假,使得&&后++j表达式截断不执行,不自增)
三、if语句:[条件分支结构]
3种形式:
1)if(表达式)语句:
eg: if(i>0) printf(">0\n");
注:①谷歌编程规范规定:一条if语句也应加“{ }”构成复合语句且每个“{ }”独占一行
②if( )后不加“;”且if( )和后续语句中不要乱加别的语句!
作等值比较时,通常将常量写左变,变量写右边
2) if(表达式)语句1 else语句2
eg:
if(x>y)
{
printf("%d",x);
}
else
{
printf("%d",y);
}
注:①else不能独立存在,必须和if搭配使用。
编写程序时要具有“高内聚、低耦合”的风格。
3) if(表达式)语句1
else if(表达式2)语句2
else if(表达式3)语句3
...
else if(表达式m)语句m
else 语句n
注: ①else if 和 else 同样不同单独使用,与if搭配使用。
四、switch语句 (switch是一个关键字)
switch(表达式)
case 常量表达式1: 语句1
......
case常量表达式n: 语句n
default : 语句n+1
switch后表达式会和case后的表达式值进行等值比较,若值相同则执行语句1,若值不同.依次类推向下执行,若一直不相同则执行default后的语句n+1实际执行中每句case语句后应加break,跳出后续程序。
注:①switch后 ( )中必须为int型或与int型相兼容的类型。
②case后必须跟随常量表达式而非变量。
③若有多个case后所对应的代码相同,删除前句后续语句。
eg:
case 'D':
case 'E':
printf(“less 60\n");
break;
五、条件运算符
13级 “ ?:” 三目运算符 自右至左
(表达式1:逻辑/关系表达式) ?(表达式2) ;(表达式3)
当程序执行时,先对表达式1求值,若为真,整个结果为表达式2,若为假,则整个结果为表达式3。