c语言分支结构-----@颜麓

一、分支结构(选择结构)

例1:如果 x!= 0 那么 y = 2x;
否则 y = 10000;

1、c中利用 if else语句最常见的形式

if(关系表达式)
语句1;
else
语句2;

在这里插入图片描述

例2:
if(x!=0)/此处就是一个表达式/
y = 2x;
else
y = 10000;

2、关系运算符及优先级

<  小于
<= 小于等于
>  大于
>= 大于等于 
//以上四个优先级相同(高)
== 等于
!= 不等于
//优先级相同(低)

3、关系表达式

用关系运算符连接起来的表达式组成有意义的式子

例3:
2x > 6就是一个简单的关系表达式

4、逻辑运算符

     &&逻辑与 双目运算符 
     ||逻辑或 双目运算符
     !逻辑非 单目运算符

在这里插入图片描述

printf("%d",!0+1);//输出结果为2,说明!的优先级比+高

在这里插入图片描述

5、多路分支结构

if…else结构可以实现两路分支选择结构。C语言允许if…else结构的嵌套。即在语句1与语句2中又可以包含完整的if语句或if…else结构,并且,这种嵌套可以多层。
利用if…else结构的嵌套,可以实现多路分支选择结构。

在这里插入图片描述
例4:显示年龄段

//输入您的年龄显示年龄段
#include<stdio.h>
int main()
{
int age;
printf("请输入你的年龄:");
scanf("%d",&age);

if(age<18 && age>0)
{
	printf("未成年");
}
else if(age>=18 && age<=30)
{
	printf("青年");
}
else if(age>30 && age<=50)
{
	printf("中年人");
}
else if(age>50 && age<= 120)
{ 
	printf("老年人");
}
else
{
printf("输入不合法");
}
	return 0; 
}

例5:输入2数a,b,c,要求按由小到大的顺序输出这2个数;

//输入2数a,b,c,要求按由小到大的顺序输出这2数
#include<stdio.h>
int main()
{
int a,b,t;
printf("请输入两个数:");
scanf("%d%d",&a,&b);

if(a>b)
{
	t=a;
	a=b;
	b=t;
}
printf("由小到大排列为:%d %d",a,b); 

return 0; 
}

例5:输入三个数从a,b,c,按由小到大输出这三个数;

//输入三个数从a,b,c,按由小到大输出这三个数;
#include<stdio.h>
int main()
{
int a,b,c,t;
printf("请输入三个数:");
scanf("%d%d%d",&a,&b,&c);

if(a>b)
{
	t=a;
	a=b;
	b=t;
}
if(a>c)
{
	t=a;
	a=c;
	c=t;
}
if(b>c)
{
	t=b;
	b=c;
	c=t;	
}
	printf("%d %d %d",a,b,c);
	
	return 0; 
}

五、注意

if 语句中的表达式(即条件)一般是关系表达式或逻辑表达式,但也可以是任意类型,只要非0即为真,必须要用一对圆括号括起来。
if 语句后的语句可以是复合语句。复合语句要用花括号{}括起来。
用多个if 语句也可以实现多路分支选择结构,但要特别注意条件表 达式的正确写法。

六、条件运算符和条件表达式

条件表达式的一般形式为: 表达式1 ?表达式2 : 表达式3

条件表达式的求解顺序:
先求出表达式1的值,若非0(真),则求出表达式2的值就是整个条件表达式的值;否则,求出表达式3的值就是整个条件表达式的值

例6:从键盘输入一个x,计算并输出下列分段函数值
在这里插入图片描述

//从键盘输入一个x,计算并输出下列分段函数值
#include  "stdio.h"
    main()
    { float x,y;
      printf("input x: ");
      scanf("%f",&x);
      y=(x<0)?(x*x-1): (x*x+1);
      printf("y=%f\n",y);
    }

七、利用switch语句实现多分支选择结构

一般形式:

switch (表达式)
    {  case  常量表达式1:   语句1break;
        case  常量表达式2:   语句2;
                                            break;case  常量表达式n:   语句n;
                                            break;
         default     :   语句n+1
      }

⑴ switch后括号内的表达式可是任何类型;
⑵ 若表达式的值与某个常量表达式的值相等时,执行此case后面的语句;若没有相等的值时,执行default后面的语句;
⑶ 每个case后面的常量表达式的值都必须不相同,否则出现矛盾;
⑷ 各个case 和default出现的次序不影响执行结果;
⑸ case后面的语句中如果没有break语句,则执行完本case后的语句会接着执行下面的case ;
⑹ 多个case可共用一组语句。
例7:实现简单的加减乘除运算

//实现简单的加减乘除运算 
#include<stdio.h>
int main()
{
double x,y;
char chars;
printf("请输入两个数加减乘除运算:");
scanf("%lf%c%lf",&x,&chars,&y);
switch(chars)
{
	case '+':printf("%f+%f=%2f",x,y,x+y);break;
	case '-':printf("%f-%f=%f",x,y,x-y);break;
	case '*':printf("%f*%f=%f",x,y,x*y);break;
	case '/':if(y==0)
			 printf("erro!");
	         else
			 printf("%f/%f=%f",x,y,x/y);break;
	default :printf("erro!");
}	
	return 0; 
}

八、总结

1.掌握各种运算符的概念和用法。算术表达式的值是一个数值,关系表达式和逻辑表达式的值是一个逻辑值(“真”或“假”)。C语言中没有逻辑型数据,约定在表示一个逻辑值时,以1代表真,以0代表假。在判断一个逻辑量的值时,以非0作为真,以0作为假。逻辑量作为数值可参加数值运算。
2.主要用if语句实现选择结构,用switch语句实现多路分支选择结构。掌握if语句的三种形式。注意if与else的配对规则,(else总是和在它前面最近的未配对的if相配对)。为使程序清晰,应写成锯齿形状,即同一层次的if和else写在同一列。
3.条件运算符(?:)是C语言中唯一的三目运算符。条件表达式是一种特殊的选择结构。
4.在用switch语句实现多路分支选择结构时,“case常量表达式”只起语句标号作用。若switch后面的表达式的值与case后面的常量表达式的值相等,就执行case后面的语句,但不会自动结束,会继续执行下一个case语句。因此,在每一个case语句最后必须加一个break语句,才能正确实现多分支选择结构。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值