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语言中还有最后一种程序执行方式,即跳转执行,这种方式由于有不确定的安全性,因此早就已经退出主流编程界,本书不讨论,有兴趣可以自己去搜资料,非常简单,一看就会。