C程序开发初级讲座之分支结构
2008-03-08 12:23:27 来源:WEB开发网核心提示:关系运算符和表达式在程序中经常需要比较两个量的大小关系, 以决定程序下一步的工作,C程序开发初级讲座之分支结构,比较两个量的运算符称为关系运算符, 在C语言中有以下关系运算符:< 小于<= 小于或等于 > 大于>= 大于或等于== 等于!= 不等于 关系运算符都是双目运算符,switch语句用于
关系运算符和表达式 在程序中经常需要比较两个量的大小关系, 以决定程序下一步的工作。比较两个量的运算符称为关系运算符。 在C语言中有以下关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 != 不等于 关系运算符都是双目运算符,其结合性均为左结合。 关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。 关系表达式 关系表达式的一般形式为: 表达式 关系运算符 表达式 例如:a+b>c-d,x>3/2,'a'+1<c,-i-5*j==k+1;都是合法的关系表达式。由于表达式也可以又是关系表达式。 因此也答应出现嵌套的情况,例如:a>(b>c),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。 如: 5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。
在本例中求出了各种关系运算符的值。 字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。 逻辑运算符和表达式 逻辑运算符C语言中提供了三种逻辑运算符 && 与运算 || 或运算 ! 非运算 与运算符&&和或运算符||均为双目运算符。具有左结合性。 非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下: 按照运算符的优先顺序可以得出: a>b && c>d等价于(a>b) && (c>d) !b==c||d<a等价于((!b)==c)||(d<a) a+b>c && x+y<b等价于((a+b)>c) && ((x+y)<b) |
switch语句 C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判定,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应非凡注重。为了避免上述情况, C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有要害字break,没有参数。在后面还将具体介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
在使用switch语句时还应注重以下几点: 1.在case后的各常量表达式的值不能相同,否则会出现错误。 2.在case后,答应有多个语句,可以不用{}括起来。 3.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。 4.default子句可以省略不用。程序举例 输入三个整数,输出最大数和最小数。
本程序中,首先比较输入的a,b的大小,并把大数装入max, 小数装入min中,然后再与c比较,若max小于c,则把c赋予max;假如c小于min,则把c赋予min。因此max内总是最大数,而min内总是最小数。最后输出max和min的值即可。 计算器程序。用户输入运算数和四则运算符, 输出计算结果。
本例可用于四则运算求值。switch语句用于判定运算符, 然后输出运算值。当输入运算符不是+,-,*,/时给出错误提示。 |
更多精彩
赞助商链接