C语言 if语句、4.3条件运算符、switch运算符详解

4.2 _ if语句、4.3条件运算符、switch运算符详解
1、if语句
是 选择结构的代表性语句:用来判断给定的条件是否满足,根据判断的结果(真、假)决定执行给出的两种操作之一。
if语句三种形式:
1)、if( 表达式) 语句     :如果表达式中的条件满足则执行该语句。
int x = 6;
if(x>5)
{
  printf("x值>5\n");
   printf("x的值为%d\n",x);
}
 
2)、if( 表达式) 语句1 else 语句2:如果表达式的条件满足,则执行语句1,否则执行语句2,语句1和语句2中有且只有一个语句能够被执行。
int x=5,y=6;
if(x>6)
{
printf("x>y是OK的");
printf("x>y是OK的2");
}
else
{
printf("x>y是不OK的");
}
3)、if( 表达式1) 语句1 
else if( 表达式2语句2
else if( 表达式3语句3
else if( 表达式4语句4
..........
else if( 表达式m语句m
else 语句n
如果表达式1成立,则执行语句1;否则表达式2成立,则执行语句2.。。。。
如果表达式m成立,则执行语句m。。。。。
如果表达式1~m都成立,则执行表达式n。【 只要有一个条件满足,其他条件就会跳过
说明
(1)if语句后面都有表达式,这个算术表达式一般为 逻辑表达式或者 关系表达式
if(a ==b &&x==y)    // == &&
printf("OK");
表达式可以扩展一下:如果表达式值为0,那么按“假”处理,如果表达式的值为非0,则按“真处理”。
(2)if语句可以单独使用,但是else语句不能单独使用,必须和if语句配对使用,也就是说, 如果出现了else,则必然会对应一个if。
if语句的嵌套:在if语句中又包含一个或者多个if语句,就称为if语句的嵌套。
if()
    if() 语句1
    else 语句2
else 
    if() 语句1
    else 语句2
else和if的配对关系: else总是和他上面的尚未配对的if语句进行配对
2、条件运算符
条件运算符有三个操作对象,也叫 三目运算符,它是C语言中唯一一个三目运算符。
一般形式
表达式1 ? 表达式2 表达式3;
执行过程
条件运算符的优先级比关系运算符低。
条件运算符的结合顺序是 从右到左的,所以:
a>b?a:c>d?c:d    ==>  a>b?a:(c>?c:d)
int a =4,b=5,max;
max = (a>b)?a:b;  //如果a>b的值为真,则条件表达式取a的值作为整个值,否则取b的值作为整个值。
3、switch语句
多分支选择结构,用的频率相对较高
格式
switch(表达式)
{
case  常量表达式1:
{
1行或者多行语句;
}
break;
case  常量表达式2:
一行或者多行语句;
break;
.............
case  常量表达式n:
一行或者多行语句;
break;
default:
一行或者多行语句;
break;
}
执行过程
switch后边的表达式的值若满足任何某个case后面的常量表达式的值,则执行该case后面的一行或者多行语句,一直遇到break停止,跳出整个switch语句。 如果所有case条件都不满足,则会执行default中包含的一行或多行语句,然后跳出整个switch语句。
说明
a、switch后面表达式一般都是 整型变量或表达式,其他类型也允许,但是都罕见;
b、每个case后面的常量表达式 必须互不相同,不然会出现编译错误;
c、各个case语句之间,case和default语句之间, 顺序没有影响,谁在上边,谁在下边,都不所谓。
d、绝对 不要忘记break语句,否则后果严重;如果忘记break语句的后果是:如果一个case语句末尾不加break的话,会导致执行完一个case中包含的语句后,流程继续会执行下一个case条件中包含的语句(而不管该case条件是否满足);也就是说,从满足条件的case语句那里作为入口一直执行下去,除非遇到break语句或者整个switch语句执行完毕。
e、case后面可以有多行语句,而且不用加{}, 系统会自动顺序执行case后面的所有语句,一直到break,当然有人习惯加{}也是可以的。
f、 default 可以没有,当没有的时候,那么当所有case条件都不满足,则整个switch都不被执行。
g、 多个case语句可以共用一组执行语句
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值