江南才子 发表于 2021-7-13 19:38:10

分支与循环语句(一)

  一、结构和语句1、C语言是一名结构化的语言,可分为顺序结构,选择结构,循环结构
2.什么是语句?
C语言中由一个分号( ; )隔开的就是一条语句。
一个;也是语句——空语句
二、分支语句(选择结构)
1.if语句
语法结构:
if(表达式)
语句;
//单分支
if(表达式)
语句1;
else
语句2;

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


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


(2)多分支语句

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




(3)悬空else问题

  else与第二个if匹配,导致第一个if条件就不匹配得出结果为空
  注意:else自动与其最近一个没匹配的if匹配
  解决方法:加大括号
  

(4)代码块
  条件完成后执行多条语句时,要使用{},即代码块。
  
  ✳注意区分  =,==

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

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

2、switch语句
  switch语句也是一种分支语句。 常常用于多分支的情况。
Switch (整型表达式) 注意必须要是整型--->int
  case  (整形常量表达式)     eg:case =1 

在switch语句中的 break(不是必须加上break)
  在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。
  比如:

  有时候我们的需求变了:

[*]输入1-5输出的是“weekday”;
[*]输入6-7输出“weekend”

default子句
如果表达的值与所有的case标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
    default:  
写在任何一个case标签可以出现的位置。
当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句

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

  问输出的m,n 是多少?
  答案:5,3

  
文档来源:51CTO技术博客https://blog.51cto.com/panyujie/3072374
页: [1]
查看完整版本: 分支与循环语句(一)