chap 3多分支结构 学习总结 第九组

1. 分支结构的定义
1.1 什么是分支结构?

①. 对于要先做判断再选择的问题就要使用分支结构。

②. 分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的顺序。

③. 分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。

④. 分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。

2.if else

多分支选择结构的语法格式如下:

    if 条件表达式 1 :

      语句 1/语句块 1

    else if 条件表达式 2:

      语句 2/语句块 2

    .

    .

    else if 条件表达式 n :

      语句 n/语句块n

    else:

      语句 n+1/语句块 n+1

    

  注:多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序。

3. if_else 流程图

 

4.三目运算符(三元运算符)

 

if 语句在某些情况下可以用条件运算符 “ ? : " 来简化表达。" ? : " 是一个三元运算符,其构成的表达式格式为:<表达式1> ? <表达式2> : <表达式3>;执行逻辑:先计算表达式1,若其值为真(或非0),则计算表达式2(不计算表达式3),并将该值作为整个表达式的值;反之,即表达式1的值为假或为0,则计算表达式3(不计算表达式2),并将该值作为整个表达式的值。

总结:if 语句嵌套时,要注意 if 和 else 的配对问题。注意,C 语言规定,else 总是与它前面最近的 if 配对,并且C语言条件判断中,切记不要出现数学表达式。例如 大于等于一般不能写成 ≥ ,要写成 >= ,不等于不能写成 ≠ ,必须写成 != 等 。

5.switch 结构:

 

①. switch 是另外一种选择结构的语句,用来替代简单的、拥有多分支的 if_else 语句。

 

②. switch 大多数情况下是进行判断选择的。以C语言来说,switch( 开关语句)常和 case break default 一起使用。

6.switch  结构的定义格式

switch (整型变量表达式) // switch 语句,即 “ 切换 ” 语句;case 即 “ 情况 ”
{

case 常量1: 语句块1; break; // break 是 C 语言中的一个关键字,专门用于跳出 switch 语句块1;break;
case 常量2: 语句块2; break;
case 常量3: 语句块3; break;
case 常量4: 语句块4; break;
...
case 常量n: 语句块n; break;

default: 语句;
break;
}

7.

switch 遵循的规则
(1) 执行次序:

当变量表达式所表达的值与其中一个 case 语句中的常量值相符时,就执行此 case 语句后面的程序,并依次去执行后面所有 case 语句中的程序,除非遇到 break 语句跳出 switch 为止;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。如果常变量表达式的量都不相符,就执行 default 语句中的程序。

(2) 所写的任何 switch 语句都必须遵循以下规则:

①. 只能针对基本数据类型中的整型类型使用 switch,这些类型包括 int、char 等。对于其他类型,则必须使用 if 语句。

②. switch() 的参数类型不能为浮点数,字符串。(必须是整型类型)。

③. case 标签必须是常量表达式 ( constantExpression ),如 42 或者 ‘4’ + 20。

④. case 标签必须是唯一常量;也就是说,不允许两个 case 具有相同的常量值。

 总结:1.case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。

eg.

 

case 20: printf("...\n"); break; // 正确
case 2+3: printf("...\n"); break; // 正确
case 'A': printf("...\n"); break; // 正确 字符和整数可以相互转换
case 'A'+23: printf("...\n"); break; // 正确 字符和整数可以相互转换
case 9.5: printf("...\n"); break; // 错误 不能为小数
case a: printf("...\n"); break; // 错误 不能包含变量
case &a+10: printf("...\n"); break; // 错误 不能包含变量
case "error": printf("...\n"); break; // 错误 不能为字符串

 

 

2.default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么在 switch 中就什么都不执行,接着执行后续代码。
 3.当第一个 case 后面没有语句或者没有 break 跳出时,则继续执行下一个 case 后面的语句,直到遇到 break 时在跳出 switch 结构。

 

posted on 2022-10-13 16:09  陌尘源  阅读(89)  评论(0编辑  收藏  举报

导航