首页 百科知识 编程中如何定义表达式

编程中如何定义表达式

时间:2024-10-17 百科知识 版权反馈
【摘要】:C语言提供了switch语句可更加方便、直接地处理多路分支。程序执行时,从匹配常量的相应case入口,一直执行到break语句或到达switch结构的末尾为止。如果几个常量都不等于switch中表达式的值,则执行default后的语句。每个case后的语句可以是单条语句或空语句,也可以是多条语句构成的—个程序段。显然switch语句使程序更简明易读。例3-6 switch语句经常用来实现屏幕菜单,为用户提供各种选择功能,方便用户选择程序以执行不同的程序段完成不同的任务。

3.4 switch多路开关语句

从前一节我们已经知道,除else if语句可以实现多路分支外,对两路分支的if else流程嵌套也可以实现多分支,但是用if语句实现多路分支常使程序冗长,因而降低了程序的可读性。C语言提供了switch语句可更加方便、直接地处理多路分支。

switch语句的一般形式为:

img235

这里switch,case,default为关键字。switch后的表达式可以是整型或字符型表达式,不能是关系表达式或逻辑表达式。常量1~n可以是整数、字符或常量表达式。

执行过程为:

计算switch语句中表达式的值,再依次与1~n个常量比较,当表达式的值与某个case后的常量相等时,则执行该case后的语句,然后执行break语句跳出switch结构。程序执行时,从匹配常量的相应case入口,一直执行到break语句或到达switch结构的末尾为止。如果几个常量都不等于switch中表达式的值,则执行default后的语句。

每个case后的语句可以是单条语句或空语句,也可以是多条语句构成的—个程序段。这里语法上允许多条语句,因此不必加花括号写成复合语句的形式。

例如:已知整型量a和b(b≠0),设x为实型量,计算分段函数:

img236

首先用if语句完成该分段函数的计算:

再用 switch case语句完成同样的计算:

img238

显然switch语句使程序更简明易读。在switch的表达式中,将x进行了舍入并取整,使实型量x所在的四个区间分别转换为整型量1,2,3,4,再与case后的常量比较,进行相应的计算。

break语句的作用是使控制立即跳出switch结构,如果上例中无break语句,则会执行switch结构中的全部语句,因此缺少break语句是不能实现多路分支的。

恰当地使用break语句,可以控制一段程序的执行入口点,例如:

img239

i=1时,从语句1执行到语句2;i=2时,执行语句2;i=3时,从语句3执行到语句5;i=4时,从语句4执行到语句5;i=5时,执行语句5;i为其他值时,执行语句6。根据i的值,可以从不同入口开始执行一段程序。

若对于switch表达式的某值不需执行任何操作,相应的case子句可以是一个空语句。

img240

如果字符型变量c的值为'a',执行语句1;若c等于'b',则立即跳出switch结构,不执行任何操作;c等于'c'时,执行语句2;c等于其他字符时,执行语句3。

当对于switch表达式的多个值都需要执行相同的操作时,可以采用下面的语句形式分组执行case子句。

img241

当整型变量i的值等于1、2或3时,均执行语句1;当i的值等于4或5时,都执行语句2;i为其他值时,执行语句3。

注意这种情况不能写成如下形式:

img242

例3-5 编写一个实现两个数的算术运算的程序。

程序如下:

img243

程序的执行结果是:

img244

再执行:

img245

再执行:

img246

再执行:

img247

  输出 x/y=2.400000

例3-6 switch语句经常用来实现屏幕菜单,为用户提供各种选择功能,方便用户选择程序以执行不同的程序段完成不同的任务。下面这段程序可以根据用户的要求计算一个数的平方或立方,以及计算两个数的平方和。

程序如下:

img248

程序执行结果是:

  Enter your selection:

  1:Find square of a number

  2:Find cube of a number

  3:Find sum of square of two number

输入:1

  Enter a number

输入:12

输出:

  The square of 12.000000 is 144.000000

再执行:

  Enter your selection:

  1:Find square of a number

  2:Find cube of a number

  3:Find sum of square of two number

输入:2

  Enter a number

输入:12

输出:

  The cube of 12.000000 is 1728.000000

再执行:

  Enter your selection:

  1:Find square of a number

  2:Find cube of a number

  3:Find sum of square of two number

输入:3

  Enter two numbers

输入:3 4

输出:

  The sum of square of 3.000000 and 4.000000 is 25.000000

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈