[C语言程序设计]选择结构程序设计

    选择打赏方式

顺序结构是一句一句自顶向下执行,而选择结构则是判断一个条件是否成立,成立或不成立分别执行不同的代码,进行不同的流程,或者仅成立时执行相应代码。


举个例子,比如QQ登陆

当用户点击登陆按钮,QQ客户端开始尝试连接服务器。

如果连接成功,则继续判断密码是否正确。

否则,直接弹出与服务器连接失败,请检查...。

连接成功密码正确则判断是否被封停、冻结等,如果是正常的,则获取好友数据载入登陆后的界面。

否则,提示冻结或封停。

注意:实际上,QQ只会判断服务器返回的数据包,密码正确与否,账号正常与否都由后端服务器判定并返回数据包给客户端。


4.2用if 语句实现选择结构

4.2.1 用if 语句处理选择结构举例


例4.2输入两个实数,按代数值由小到大的顺序输出这两个数。

1.png


关于变量交换的参考资料:


4.2.2 if 语句的一般形式


1.if(判断条件)

{
    语句块
}


2.if(判断条件)

{
    语句块1
}else{
    语句块2
}


3.if(判断条件1){
    语句块1
} else  y:"font-size:14px;white-space:normal;" /> } else  if(判断条件2){
    语句块2
}else  if(判断条件3){
    语句块3
}else  if(判断条件m){
    语句块m
}else{
     语句块n
}


4.3 关系运算符和关系表达式

4.3.1关系运算符及其优先次序

运算符 意义 优先级
== 等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
!=

不等于

例如:

int a=3,b=5;


则有:

a>b:逻辑假,其值为 0;

a>=b:逻辑假,其值为 0;

a<b:逻辑真,其值为 1;

a<=b:逻辑真,其值为 1;

a==b:逻辑假,其值为 0;

a!=b:逻辑真,其值为 1;



1. 一元:!(逻辑非)。

2.二元:&&(逻辑与)、||(逻辑或)。

以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻辑或  ||  优先级最低。即算术、逻辑、赋值运算符的优先级顺序为:

逻辑非 ! >算术 > 逻辑与 &&、逻辑或 || > 赋值=


4.4.2 逻辑表达式

C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“真”。


注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。


如下所示:

表达式:c = !a || ++b&&a--;

!=优先级最高,判断!=结果为1,||后面的表达式被忽略。

2.png


关于运算符优先级的参考资料:http://www.8964cn.net/?post=50


4.4.3逻辑型变量
这是C99所增加的一种数据类型。可以将关系运算和逻辑运算的结果存到一个逻辑型变量中,以便于分析和运算。定义逻辑变量用类型符_Bool。

如:
1.gif

在头文件stdbool.h中,将bool定义为_Bool的同义词,同时定义了两个符号常量true和false,true代表1,false代表0,用它们分别代表真和假。

逻辑型变量bool和true和false原本是C++中使用的,现在C把它们吸收进C新标准,以增加程序的可读性。


4.5 条件运算符和条件表达式

有一种f语句,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值。如:
if(a>b)
max=a;

else

 max=b;
当a>b时将a的值赋给max,当a≤b时将b的值赋给max,可以看到无论a>b是否满足,都是给同一个变量赋值。C提供条件运算符和条件表达式来处理这类问题。

可以把上面的if语句改写为
max=(a>b)?a:b;

赋值号右侧的“(a>b)?a:b”是一个“条件表达式”。“?”是条件运算符。
如果(a>b)条件为真,则条件表达式的值等于a;否则取值b。

如果a等于5,b等于3,则条件表达式“(a>b)?a:b”的值就是a的值5,把它赋给变量max,因此max的值为5。


4.6 选择结构的嵌套
3.png

注意:if与else的配对关系。else总是与它上面的最近的未配对的if配对。


例4.5 有一函数:

4.png


嵌套演示:

2.gif


4.7 用switch 语句实现多分支选择结构

分支选择结构

switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句,基本格式如下:

switch(表达式){
    case 整型数值1: 语句 1;
    case 整型数值2: 语句 2;
    ......
    case 整型数值n: 语句 n;
    default: 语句 n+1;
}

break 是C语言中的一个关键字,专门用于跳出 switch 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。 


注意:

1.case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。

2.case和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句,所以如果是分支单一选择,注意执行完以后用break跳出。

3. default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。

switch_1.png

如果是一个代码段,最好写成如下形式:

switch_2.png

还可以这样使用:

switch_3.png


版权声明:若无特殊注明,本文皆为《 8964CN 》原创,转载请保留文章出处。
本文链接:[C语言程序设计]选择结构程序设计 http://www.8964cn.net/?post=49
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!