美文网首页
选择结构

选择结构

作者: labi3285 | 来源:发表于2017-09-14 21:51 被阅读52次

条件选择结构的作用是根据程序的执行结果进行必要的分支操作,从而达到灵活应对的作用。c语言条件选择结构主要包括if条件选择结构以及switch选择结构,下面分别学习。

1、if条件选择

举个小例子,假设班级学生的性别我们用char数据类型来表示,M表示男,W表示女,我们要设计一个小程序,要求能判断某同学的性别,并输出,该如何操作呢?
首先我们要创建一个同学,假设他叫小明,如下:

char xiaoming = 'W';  

我们可以通过if条件选择,来确定小明的性别:

if (xiaoming == 'M') {  
    printf("A boy!\n");  
} else if (xiaoming == 'W') {  
    printf("A girl!\n");  
} else {  
    printf("unknown!\n");  
} 

该选择结构根据用于存储性别信息的数据与‘W’、‘M’进行比较,来判断小明的性别,当既不是‘W’,也不是‘M’时,执行最后一步操作。在if语句中三中操作必须独立开来,且最好覆盖所有情况。
输出结果如下:

A boy!  

2、switch条件选择

同样判断性别的例子,也可以采用switch语句,如下所示:

char xiaohong = 'W';  
  
switch (xiaohong) {  
    case 'W':  
        printf("A girl!\n");  
        break;  
    case 'M':  
        printf("A boy!\n");  
        break;  
    default:  
        printf("unknown!\n");  
        break;  
} 

输出结果如下:

A girl!  

3、两者之间的差别

if和switch虽然都能解决上面的问题,但是这两者之间存在本质的区别。
a、if语句多用于处理集合性质的判断,他的不同分支分别是集合的不同的范围区间,而switch语句处理的多是零散的节点,不能够处理范围性质的数据;
b、if语句的前后两个分支有明显的逻辑关系,如字面意思一样,第二个分支是排除第一个分支之后的情况,而switch的各个节点没有逻辑关系,由程序的顺序由上往下执行,遇到break后,终止,因此break语句在这里至关重要;
c、这两者都能进行嵌套,但是switch语句的嵌套要慎用,必须用时,最好加上大括号。

相关文章

  • 选择结构

    if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构 if选择结构 switch多选择结构

  • 控制语句

    控制语句 控制语句分为三类:顺序、选择和循环。 选择结构 主要的选择结构有:if选择结构和switch多选择结构。...

  • C语言017 第十七课 选择结构语句-1 2019-07-08

    选择结构语句 选择结构语句是有条件地执行语句,顺序结构语句是按照顺序执行语句。选择结构语句不同选择结构语句, 是按...

  • JavaSE | 02 理解面向对象

    一、面向对象 1、结构化程序设计 2、程序的三种基本结构 顺序结构,选择结构(单选择、双选择、多选择),循环结构(...

  • 流程控制

    程序结构选择结构 顺序结构 循环结构顺序结构 ——>语句一——>语句二——>语句三——>选择结构 If语句的用法...

  • 01-C语言流程控制-if和switch条件语句

    流程控制 流程控制三种结构: 顺序结构, 选择结构, 循环结构 选择结构 C语言中提供了两大选择结构,分别是if ...

  • java基础篇四(程序控制结构)

    一、程序逻辑 分类 顺序结构 分支结构(选择结构) 循环结构 二、选择结构 if语句 语法格式: if...els...

  • 第三章 流程控制

    一.程序控制 种类: 顺序及结构顺序结构.png 选择结构选择结构.png 循环结构循环结构.png 二.条件语句...

  • if选择结构

    if选择结构 if选择结构的语法是:if(判断条件){满足条件之后,执行的代码块} if-else选择结构,if(...

  • 流程

    概念:流程是指程序步骤执行的先后顺序 分类: 顺序结构 选择结构 循环结构 顺序结构 选择结构 if语句 if (...

网友评论

      本文标题:选择结构

      本文链接:https://www.haomeiwen.com/subject/vodjsxtx.html