【连载】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4) 2024-05-08 17:47:47 4 选择执行语句有些时候,我们希望程序既不顺序执行,也不只做单一的判断(代码运行还是不运行),很多时候,我们往往只希望对某一个条件的不同状态分别执行不同的语句,这样就构成C语言中的选择执行语句了。C语言中的选择执行语句有两种实现方式,一种是使用前面所说的“if …… else”形式,还有一种是使用“switch …… case”的形式,这种形式在有些地方也被称为“开关语句”。选择执行语句的执行顺序图如图3-8-14所示。 图3-8-14 选择执行语句结构(1)“if …… else ……”选择语句if语句的用法我们之前已经详细地讨论过,它是表示判断某一条件是否需要被执行的一种语句,但是,如果在if后面加了else之后,它们整体的意思就有改变了,就变成两个条件里面一定要运行一个这样子的二选一形式了,有点类似于我们要说的,“要么怎么样,否则怎么样”这样子的形式。if……else……的一般形式如下所示: 表达式如果成立,就运行下面的执行语句,否则就运行else里面的执行语句。还是举字符判断的例子来说,输入一个字符,如果是字母就将其打印出来,如果是数字,就打印Good bye。此时这里的判断条件就是这个输入的字符要大于0的ASCII码,并且要小于9的ASCII码,因此我们可以写出如图3-8-15的代码。 图3-8-15字符判断代码看到这里,有疑问的读者可能会问了,图3-8-15中的例子只是判断数字和字符,那万一我们要判断大写字母,小写字母,数字和其他字符呢?这种互斥逻辑的程序貌似不够用。这里,C语言还提供了另一种if……else if……else的多入口选择执行语句,其一般形式为: 如果条件1满足,就执行条件1里面的程序语句,如果条件2满足,就执行条件2里面的程序,……,如果上述条件都不满足,就执行else里面的语句。这里要注意,一般这种逻辑下,最后一个else里面的内容不要省略,因此大家在使用这种形式的时候,要充分考虑到这些关系的逻辑性,以及互斥性。现在我们就可以利用这种程序架构来设计一个程序,用以区分输入字符是大写字母,小写字母,数字还是其他字符了,其代码如图3-8-16所示。 图3-8-16 判断输入字符类型 if和else构成的选择执行语句是单入口的,这里要注意下,哪怕我们在第一个if里面修改条件值,使它满足第二个if……else入口,这个程序也不会跳进去,这里大家需要注意下,测试代码如图3-8-17所示。 图3-8-17 if……else单入口测试图3-8-17所示,首先定义一个number变量并给它赋值,使之满足if的第一个条件,在第一个条件中将number赋值,使之满足第二个条件入口,依次类推,结果程序运行完成后,我们可以发现,不管这个number的值怎么被修改,它只不过在最开始满足的第一个入口处运行。(2)“switch …… case ……”开关语句“switch …… case ……”又被称为开关语句,它的一般形式为: 这里需要注意的是,switch后面的表达式返回值必须为整数,变量也必须为整数。而下面case后面的值表示的是表达式的状态,它们千万不能重复,最后的default表示的是不满足上面任意一个case时的情况,可以不加,但是为了程序的严谨性,一般在使用时都加上去。以上就是对switch语句的介绍,好了现在让我们用switch语句写个简单的测试程序吧,对一个输入的数值,如果输入1则打印one,依次类推。这个程序的思想很简单,先获取输入的值,如果是任意一个数字,就跳到相应的case入口中,执行不同的打印,如图3-8-18所示。 图3-8-18 数字打印在我们写完代码之后,发现程序并没有按照我们预期的运行结果去运行,我们明明输入了一个4,按理来说应该就打印出一个four,现在这个程序把4之后的所有内容都打印出来了。这个就是switch语句的特性,只规定入口,而没有规定出口,上述程序中字符‘4‘是一个入口,条件满足了,进去之后,就把以下的程序都执行了。因此我们需要在程序进入入口后,执行完相应的程序,马上退出这个开关语句,而前面我们说了,C语言中有一个关键词,可以里面控制程序的跳出,这个就是break。综上所述,图3-8-18中的代码应该改成图3-8-19中所呈现的代码。 图3-8-19 数字打印正确程序其实switch之规定入口而没规定出口是合理的,因为很多程序可能需要有多个入口,这个在后面我们会经常用到。C语言中还有最后一种程序执行方式,即跳转执行,这种方式由于有不确定的安全性,因此早就已经退出主流编程界,本书不讨论,有兴趣可以自己去搜资料,非常简单,一看就会。 赞 (0) 相关推荐 《零基础看得懂的C语言入门教程》——(六)轻松了解逻辑运算 https://m.toutiao.com/is/JmMSxae/ 一.学习目标 了解逻辑判断的概念 了解if语句的使用方法 了解switch语句的使用方法 了解逻辑运算符的使用方法 目录 <零 ... JAVA的分支结构 分支结构 基本概述 当需要进行条件判断的时候,并且根据条件是否成立来执行某一段代码的时候,需要分支结构. 1. if结构 if(布尔表达式) { 语句块//如果布尔表达式为true将执行的语句 } 如 ... 零基础学C语言循环与控制结构 https://m.toutiao.com/is/eLASn2y/ 这是一个C语言系列文章,如果是初学者的话,建议先行阅读之前的文章.笔者也会按照章节顺序发布. 本篇详细讲解循环结构与控制结构.对于每 ... JavaScript的简介与语法大合集 以最新的JavaScript标准为基准.通过简单但足够详细的内容,为你讲解从基础到高阶的JavaScript相关知识. JavaScript简介 让我们来看看JavaScript有什么特别之处,我们可 ... 【连载】(循环执行语句while和if)乐创DIY C语言讲义——3.8节(3) 2 循环执行语句 计算机有一个强大的能力,快速地重复执行某一计算,这种重复计算多次的方法,是通过软件中的循环执行语句去实现的.C语言中实现循环语句结构的方式有三种,第一种为"for" ... 【回顾】(循环执行语句while和if)乐创DIY C语言讲义——3.8节(3) 2 循环执行语句 计算机有一个强大的能力,快速地重复执行某一计算,这种重复计算多次的方法,是通过软件中的循环执行语句去实现的.C语言中实现循环语句结构的方式有三种,第一种为"for" ... 【回顾】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4) 4 选择执行语句 有些时候,我们希望程序既不顺序执行,也不只做单一的判断(代码运行还是不运行),很多时候,我们往往只希望对某一个条件的不同状态分别执行不同的语句,这样就构成C语言中的选择执行语句了.C ... 【连载】(判断执行语句)乐创DIY C语言讲义——3.8节(2) 2 判断执行语句 判断执行语句,执行时候会有一个条件判断,一旦当条件判断为真,即True的时候,就执行相应的语句,满足条件被执行的语句用大括号"{}"括起来.由于在C语言中没有用于 ... 【回顾】(判断执行语句)乐创DIY C语言讲义——3.8节(2) 2 判断执行语句 判断执行语句,执行时候会有一个条件判断,一旦当条件判断为真,即True的时候,就执行相应的语句,满足条件被执行的语句用大括号"{}"括起来.由于在C语言中没有用于 ... 【连载】(函数私有化)乐创DIY C语言讲义——4.6节 4.6 函数私有化 C语言的语句非常简单,关键词也少得可怜,关于变量和函数的修饰符也就只有区区几个,因此一个关键词有时候有着多重含义,这也就是为何C语言明明非常简单,但是用起来又非常复杂的原因之一.C ... 【连载】(堆栈和递归函数)乐创DIY C语言讲义——4.5节 4.5 堆栈和递归函数 堆栈这个概念,最早学习微机原理的时候就学过,它表示的是一种在汇编语言调用子程序时候保存现场的存储空间,它所具有的数据结构属性就是先进后出,这个是我们之前学习计算机硬件时候讲述的 ... 【连载】(学了这么多年C语言,你真的了解static关键词吗)乐创DIY C语言讲义——4.4节 4.4 变量的补充 前面内容中,我们已经讨论了变量的定义,但是由于函数的概念还没有引入,因而这是不全面的,本节开始,我们再来补充一些变量的其他内容,这就相当于对变量这个概念的重新认识. 我们之前讲的变 ... 【连载】(函数的参数和返回值)乐创DIY C语言讲义——4.3节 4.3 函数的参数和返回值 函数定义和声明好之后,整个函数也就定义好了,上一小节我们说到,声明函数原型的目的,就是将函数的信息传递给编译器"登记"下来,以便后续调用时进行参数的检查 ...