剖析:选择结构

  选择结构,他所包含语句也可以被称为分支语句,用于判断给定的条件,根据判断的结果是否满足来决定是否执行指定的操作任务,或者选择做哪一个任务。

  比如说,小明计划是明天去野炊,野炊能成功的前提是明天不下雨。如果明天下雨,小明会取消野炊计划,如果是大晴天或者阴天,则高兴的去野炊。这边我们就需要用到判断是否下雨来决定是否野炊。或者说,小明想买一把心仪的手机,他现在选出了两把,一把2000元,一把3000元,如果妈妈给了2000元到3000元,只能买便宜的,如果妈妈给了3000元以上,则可以选择3000元的手机,这里就用到了选择做哪一个任务。接下来,将会介绍选择结构中几个重要的部分。

1.选择语句(分支语句)

1.1  if语句

if语句可以认为是条件语句,就是满足该条件才有下列程序的进行,比如现在有一个程序

我们运行这个程序,得到的是

在这种情况下,只有a满足条件,所以a为正数被执行,但是b不满足条件,所以不执行。

我们可以用这种方法来比较大小

当然,我们还有简单的方法,如果我们用条件操作符,就会简化这个代码

通过三目操作符,如果a>b成立,则c等于a,否则c等于b,达到比较大小的效果

1.1.1if else的运用

注意,这里有个容易错的点,就是一般来说都是一个if接一个语句,不然就会出现这种情况

如果我们想解决这种情况只需要将语句用大括号包含,如下

当然,我们也可以用else if的形式

1.1.2if else的嵌套

第一种是在if中嵌套if

这里运用两个if,判断了两次,这里第一个条件符合但是第二个条件符合,所以只打印了ei

第二种是在else中嵌套if

在else中嵌套if再进行一次判断

注意:else只会和最近的if结合,记得注意迷惑性的结构,往往容易判断失误。

1.2  switch语句

switch语句是多分支选择语句,可以实现多种情况选择。

1.2.1  case结构

如果我们想让程序判断一周中哪一天是工作日,就可以用switch和case的配合语句

#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d",&a);
	switch  (a)
	{
		case 1:
		printf("工作日");
		
	case 2:
		printf("工作日");
	
	case 3:
		printf("工作日");
	
	case 4:
		printf("工作日");
	
	case 5:
		printf("工作日");
	
	case 6:
		printf("休息日");
	
	case 7:
		printf("休息日");
	
	}
	return 0;
		
}

但是他输出的结果变成

1.2.2  break

我们会发现,上面的情况有问题,程序不会停止,那么我们引入break终止case的小程序

#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d",&a);
	switch  (a)
	{
		case 1:
		printf("工作日");
		break;
	case 2:
		printf("工作日");
		break;
	case 3:
		printf("工作日");
		break;
	case 4:
		printf("工作日");
		break;
	case 5:
		printf("工作日");
		break;
	case 6:
		printf("休息日");
		break;
	case 7:
		printf("休息日");
		break;
	}
	return 0;
		
}

经过这种处理后,程序恢复正常

当然我们还有更简单的写法

如果我们把重复的省略,这种照样可以解决问题,而且显得更简洁。

1.2.3 default

如果我们不小心输入8,这样程序都没有进行。怎么办呢

我们可以引入default,我们可以给用户一个提示,如果输错了还能让他重新输入一次

这样就可以合理地解决我们所担忧的问题。

2.  表达式

2.1  关系表达式

关系表达式是用关系操作符将两个数值或数值表达式连接起来的式子。关系表达式所计算的值是真或者假,即0或者1,比如5>1为真代表的值为,1>5为假代表的值为0。

2.2  逻辑表达式

逻辑表达式是用逻辑运算符将关系表达或者其他逻辑量连接的式子。逻辑表达式的结果为0和1,即真和假。当然,很多时候判断的条件不是一个简单的条件,那我们可以用这种式子来判断复杂的条件,比如,周一下雨不用升旗,那么我们得判断两个条件,一个是是否周一,一个是是否下雨,两个都满足才有不用升旗的结果。

2.3  条件表达式

条件表达式是由条件运算符组成,并常用条件运算符构成赋值语句。

3.  运算符

3.1  关系运算符

关系运算符有<(小于)  <= (小于等于) >=(大于等于)  ==(等于)  !=(不等于)6种,前面四种优先等级一样,后面两种一样,前面四种优先等级高于后面两种。

优先次序的排列是算术操作符>关系操作符>赋值操作符

3.2  逻辑运算符

3.2.1  运算符

逻辑运算符有3种,逻辑与(&&),逻辑或(||)和逻辑非(!),其中逻辑与和逻辑或是双目操作符,逻辑非是单目操作符。在一个式子中如果同时出现这三种运算符,优先次序为逻辑非>逻辑与>逻辑或

3.2.2  短路

短路的意思是如果左边的运算符符合式子的要求,则不进行右边的运算。

比如我们在运用逻辑与的时候,如果左边为0,则式子整体为0;不会在计算右边的式子

又或者我们在运用逻辑或的时候,如果左边为非0,则整体为1,为真,不会计算右边的式子

3.3  条件运算符

条件运算符一般来说都是表达式1?表达式2:表达式3的格式,判断表达式1,如果表达式1成立,则输出1,进行表达式2,如果表达式1不成立为假,输出0,执行表达式3

   好了,文章到这边基本上介绍完了常量与变量,作者制作不易,希望能收获你的喜欢和关注 68ffdcfbee5143c49a83a0a878c54c78.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值