一、结构和语句

1、C语言是一名结构化的语言,可分为顺序结构,选择结构,循环结构
2.什么是语句?
C语言中由一个分号( ; )隔开的就是一条语句
一个;也是语句——空语句

二、分支语句(选择结构)

1.if语句


语法结构:
if(表达式)
语句;
//单分支
if(表达式)
语句1; 
else
语句2;

// 多 分 支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;

 

(1)单分支语句

在代码中 if 后无分号-->if是条件(如果条件),执行命令,分号是完整的语句

分支与循环语句(if…else , switch...case , default)_C语言

 

 

(2)多分支语句

分支与循环语句(if…else , switch...case , default)_C语言_02

也可以将一部分情况归到else之中,如将上述代码写成下列代码,运行结果一致。

分支与循环语句(if…else , switch...case , default)_C语言_03

 

 

(3)悬空else问题

分支与循环语句(if…else , switch...case , default)_C语言_04

else与第二个if匹配,导致第一个if条件就不匹配得出结果为空

注意:else自动与其最近一个没匹配的if匹配

 

解决方法:加大括号

分支与循环语句(if…else , switch...case , default)_C语言_05

 

 

(4)代码块

条件完成后执行多条语句时,要使用{},即代码块。

分支与循环语句(if…else , switch...case , default)_C语言_06

 

 

✳注意区分  =,==

分支与循环语句(if…else , switch...case , default)_C语言_07

⬆⬆⬆ =赋值-->右边值赋给左边导致出错


分支与循环语句(if…else , switch...case , default)_C语言_08

⬆⬆⬆  ==判断相等-->逻辑正确

 


 

2、switch语句

switch语句也是一种分支语句。 常常用于多分支的情况。
Switch (整型表达式) 注意必须要是整型--->int

case  (整形常量表达式)     eg:case =1 

分支与循环语句(if…else , switch...case , default)_C语言_09

 

 

switch语句中的 break(不是必须加上break)

在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。

比如:

分支与循环语句(if…else , switch...case , default)_C语言_10

 

有时候我们的需求变了:

  1. 输入1-5输出的是“weekday”;
  2. 输入6-7输出“weekend”

分支与循环语句(if…else , switch...case , default)_C语言_11

 

 

default子句

如果表达的值与所有的case标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。

但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

你可以在语句列表中增加一条default子句,把下面的标签

  default:  

写在任何一个case标签可以出现的位置。

当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。

但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句

分支与循环语句(if…else , switch...case , default)_C语言_12

好习惯

在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break

 


 

练习:

分支与循环语句(if…else , switch...case , default)_C语言_13

问输出的m,n 是多少?

答案:5,3