主页
分类
关于
C语 选择结构程序设计
C语学习笔记
C语言提供了两种类型的选择结构
- 条件选择结构: 根据给定的条件表达式进行判断, 决定执行某个分支中的程序段
- 开关选择结构: 根据给定的整型表达式的值进行判断, 然后决定执行多个分支中的某个分支
程序流程图
graph LR
A([" 起始框 "])
E[/" 输入/输出框" /]
B{" 判断框 "}
D[" 处理框 "]-->流程线C((" 连接点 "))
if 语句
if的三种格式
单分支选择结构
单分支选择结构图
graph TB
A([" 开始 "])-->B{" 表达式 "}
B{" 表达式 "}--非0 / 真-->D[" 语句 "]
D[" 语句 "]-->E[" 结果 "]
B{" 表达式 "}--0 / 假-->E[" 结果 "]
双分支选择结构
if ( 表达式 ) { 语句1; } else { 语句2; }
|
双分支选择结构图
graph TB
A([" 开始 "])-->B{" 表达式 "}
B{" 表达式 "}--真-->D[" A "]
B{" 表达式 "}--假-->F[" B "]
D[" A "]-->E[" 结果 "]
F[" B "]-->E[" 结果 "]
多分支选择结构
if ( 表达式1 ) { 语句1; } else if ( 表达式2 ) { 语句2; } else if ( 表达式3 ) { 语句3; } ... else if ( 表达式n ) { 语句n; } else { 语句 n+1; }
|
多分支选择结构图
graph TD
A([" 开始 "])-->B{" 表达式1 "}
B{" 表达式1 "}--非0/真-->D[" 语句1 "]
B{" 表达式1 "}--0/假-->C{" 表达式2 "}
C{" 表达式2 "}--0/假-->F{" 表达式3 "}
C{" 表达式2 "}--非0/真-->G[" 语句2 "]
F{" 表达式3 "}--0/假-->H{" 表达式4 "}
F{" 表达式3 "}--非0/真-->I[" 语句3 "]
H{" 表达式4 "}--0/假-->J[" 语句5 "]
H{" 表达式4 "}--非0/真-->K[" 语句4 "]
D[" 语句1 "]-->L[" 结果 "]
G[" 语句2 "]-->L[" 结果 "]
I[" 语句3 "]-->L[" 结果 "]
J[" 语句4 "]-->L[" 结果 "]
K[" 语句5 "]-->L[" 结果 "]
if 语句的嵌套
if ( 表达式1 ) if ( 表达式11 ) 语句11; else 语句12; else if ( 表达式2 ) 语句21; else 语句22;
if ( 表达式1 ) if ( 表达式11 ) 语句11; else 语句12;
if ( 表达式1 ) { if ( 表达式11 ) 语句11; } else 语句12;
|
双分支选择结构图
多分支选择语句 ( switch 语句 )
switch ( 表达式 ) { case 常量表达式1: 语句组1; break; case 常量表达式2: 语句组2; break; ... case 常量表达式n: 语句组n; break; default: 语句组n+1; }
|
switch语句执行流程图
graph TB
A([" 开始 "])-->B{" 表达式 "}
B{" 表达式 "}--值1-->F[" 语句1 "]
B{" 表达式 "}--值2-->G[" 语句2 "]
B{" 表达式 "}--值n-->H[" 语句n "]
B{" 表达式 "}--default-->I[" 语句n+1 "]
F[" 语句1 "]-->E[" 结果 "]
G[" 语句2 "]-->E[" 结果 "]
H[" 语句n "]-->E[" 结果 "]
I[" 语句n+1 "]-->E[" 结果 "]
switch 后面小括号里的表达式可以是任何类型的, 其常用的是字符或整型表达式
case 后面的常量表达式是由常量组成的表达式, 其中的使用常量表达式的值必须互不相同, 且常量表达式的值必须与 switch 后面表达式的值类型相同
语句组是由若干个语句组成的, 但不需要用大括号括起来, 其中的语句可以是任何 C语言 的可执行语句, 当然也可以是另一个 switch 语句 ( 称为嵌套 switch 语句 ) ,即 switch 语句也是可以嵌套使用
break 是 C语言的一种语句, 其功能是跳出当前 switch 语句, 在 switch 语句中 当执行某个语句组后, 后面若有 break , 变退出该 switch 语句, 如果省略了 break 语句, 则执行完某个语句组后, 将连续执行其后的语句组, 直至遇到下一个 break 语句, 如果后面没有 break 语句, 则一直执行到 switch 语句的最后一个语句
在书写格式上, 所有的 case 应对齐, 每个 case 后的语句缩格并对齐, 以方便看出各个分支的条件依据和应执行的操作
注意 case 和常量表达式之间要有空格
当 switch 后面表达式的值与某个 case 后面常量表达式的值一直时, 就会执行该 case 后面的语句组, 若所有 case 后面常量表达式的值和 switch 后面表达式的值都不相同时, 便执行 default 后面的语句组
default 语句可以省略
case 和 default 语句的出现次序是任意的, 可以变换位置, 这并不影响 switch 的功能, 如可以先出现 “ default : … “, 再出现 “ case ‘B’ : … “, 然后是 “ case ‘A’ : … “
可将相同操作的 case 语句及对应的常量表达式连续排序, 其对应操作的语句组及 break 只在最后一个 case 语句后出现
switch ( 表达式1 ) { case 常用表达式 1: case 常用表达式 2: case 常用表达式 3: 语句组1; break;
... ...
case 常用表达式 n-1: case 常用表达式 n: 语句组n; break; default: 语句组 n+1; }
|
作者: 我叫史迪奇
本文来自于:
https://sdq3.link/C-if.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议