C语言入门Class_5

目录

1、if 语句

1.1 基本结构

1.2 else 的使用

1.3 多条语句

1.4 嵌套用法

1.5 else的就近原则

1.6 if- else if-else 的用法

2、关系操作符

关系操作符不能连用

3. 逻辑操作符

&& 并且

|| 或者

!非

4. 条件操作符

5、Switch 语句

5.1基本结构

5.2 break 的作用

5.3 default 的位置


在第一节的时候,我们学习过,C语言是结构化语言。他的结构可以分成:顺序结构、选择结构、循环结构、复合结构。那我们该怎样在程序中实现这些结构呢,就需要用到一些语句。

1、if 语句

if语句是编程中常用的一种控制流结构,用于根据条件选择性地执行特定的代码块。它允许程序根据条件的真假来决定执行哪些语句。因此他可以实现选择结构

1.1 基本结构

他的基本语法结构是

如果表达式为真,则执行下面的语句,如果为假,则不执行

题目:用户输入成绩,如果大于等于60,打印出来及格,否则不显示任何内容

输入70,打印及格

输入50,不进行任何操作

1.2 else 的使用

还是刚才的问题,如果输入60分以下,打印不及格,就要引入else

结构:

表达式为真,执行语句1

表达式为假,执行语句2

1.3 多条语句

如果还是刚才的问题,如果成绩大于等于60分,不仅输出及格,还输出恭喜你,同样的,如果成绩小于60分,不仅输出不及格,还输出继续努力,该怎么写呢,这样写可以吗?

结果是发生错误。

因为:默认if 和else 语句都只能控制一条语句

如果想要控制多条语句,需要用{}括起来

比如刚才的代码可以改成

1.4 嵌套用法

我们再对刚才的问题进行改进

如果大于等于60分,再输出及格以后,我们再进一步分析

如果成绩小于80分,等级为B

如果成绩大于等于80分,等级为A

这个时候我们还可以这样写

这种在if-else 语句中继续使用if-else语句的用法称为嵌套用法

1.5 else的就近原则

请看这个代码

可能会理解成,如果分数小于60,输出不及格,如果大于60再判断是否大于80,如果是的,再输出你的等级是A

我们来运行一下

输入如果是70,理想结果是什么也不输出,因为没有大于80,后面程序就结束了

但是实际上的结果令人摸不到头脑

那是因为else 与跟他最近的if匹配,即使可以让它跟第一个的if保持缩进一致也没有用,所以代码的逻辑是,首先判断是不是大于等于60分,如果不是吗,程序结束了,什么也不输出,我们试一试50

如果输入的是70,先判断是不是大于60,是的继续判是不是大于80,如果不是,输出不及格

其实我们只要加上大括号就可以解决这个问题

这样程序就变正常了。

1.6 if- else if-else 的用法

如果在选择结构中,引入多条选择还可以使用这种书写方式

比如:输入一个数,判断是正数还是负数

2、关系操作符

在学习if语句的时候,我们说了if后面是表达式,那哪些表达可以使用呢,在C语言这些用来比较的表达式称为"关系表达式“,里面的运算符是“关系运算符”常用的有:

> 大于

< 小于

>=大于等于

<=小于等于

==等于(不是=,因为这是赋值操作)

!=不等于(不是=!)

举个例子,判断一个数是正数、负数、还是0

关系操作符不能连用

比如0<x<100,这样是不可以的,这样的话,其实是从左到右进行判断,首先

0<x 是不是成立的,结果实际上就两种0(代表假),1(代表真),无论1或者0肯定小于100,所以肯定为假

这个时候如果我们就要表达x大于0,而且是小于100的,这个时候我们需要用逻辑操作符

3. 逻辑操作符

&& 并且

|| 或者

!非

&&两个都满足的时候才为真,有一个为假的时候就假

aba&&b
000
非000
0非00
非0非0非0

c语言中真是非0,假是0

|| 两个都假的时候才为假,有一个为真的时候就真

aba||b
000
非00非0
0非0非0
非0非0非0

c语言中真是非0,假是0

! 原来为真,非后为假,原来为假,非后为真

a!a
0非0
非00

所以针对前面说的对于关系操作符不能连用的情况,我们就可以用逻辑操作符的&&。

请看下面的代码,如果成绩在65-100之间,得到的等级是B,其他情况不输出任何东西,我们可以这样写

4. 条件操作符

条件操作符是三目操作符,他可以将if语句简化

语句1? 语句2 :语句3

他的含义是:如果语句1为真,执行语句2,整个表达式的值就是语句2的值,反正执行语句3,整个表达式的值就是语句3的值

比如判断两个整数谁大,并把大的数输出出来

5、Switch 语句

5.1基本结构

它的逻辑是:首先执行表达式的值,得到结果是几,就执行谁后面的语句,如果没有对应的就输出default 后面语句。

举个例子,比如输入一个数字,求被3除以后的余数

还可以再看个例子

输入1-7,输出的是对应的星期几,比如输入1,输出星期一

5.2 break 的作用

switch语句中,break语句的作用是终止switch块的执行,并跳出switch语句。当switch块中的某个case条件被匹配成功时,程序会执行相应的代码块,并在执行完该代码块后遇到break语句时跳出switch语句。

如果没有break语句,程序会继续执行后续的case条件的代码块,直到遇到break语句或switch块结束。

比如刚才的代码,我们把break去掉

5.3 default 的位置

一般我们在使用switch  case 语句的时候,把default放在最后。

  • 38
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值