快速业务通道

第 4 章 分支语句

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16
、关系、逻辑与、逻辑或运算符都有两个操作数,称为双目运算符(Binary Operator),只有两个条件都为假,逻辑或运算的结果才为假.逻辑非的作用是对原来的逻辑值取反,原来是真的就是假,原来是假的就是真.
关于逻辑运算的数学体系称为布尔代数(Boolean Algebra),以它的创始人布尔命名.在编程语言中表示真和假的数据类型叫做布尔类型,在C语言中通常用int型来表示,非0表示真,0表示假[6].布尔逻辑是写程序的基本功之一,程序中的很多错误都可以归因于逻辑错误.
习题
1、把代码段 if (x > 0 && x < 10);
else
printf("x is out of range.\n");
改写成下面这种形式: if ( x<=0 || x>=10)
printf("x is out of range.\n"); 2、把代码段: if (x > 0)
printf("Test OK!\n");
else if (x <= 0 && y > 0)
printf("Test OK!\n");
else
printf("Test failed!\n");
改写成下面这种形式: if (x <= 0 && y <= 0)
printf("Test failed!\n");
else
printf("Test OK!\n");
3、有这样一段代码: if (x > 1 && y != 1) {
...
} else if (x < 1 && y != 1) {
...
} else {
...
}
要进入一个else,x和y需要满足条件x=1 || y=1. 4、以下哪一个if判断条件是多余的可以去掉?这里所谓的“多余”是指,某种情况下如果本来应该打印Test OK!,去掉这个多余条件后仍然打印Test OK!,如果本来应该打印Test failed!,去掉这个多余条件后仍然打印Test failed!. if (x<3 && y>3)
printf("Test OK!\n");
else if (x>=3 && y>=3)
printf("Test OK!\n");
else if (z>3 && x>=3)
printf("Test OK!\n");
else if (z<=3 && y>=3)
printf("Test OK!\n");
else
printf("Test failed!\n");
判断一下:
(1)当x<3和y>3为真,则输出第一个 Test Ok
(2)当x>=3,y>3为假,则执行第二个if语句,x>=3&&y>=3符合条件输出第二个Test Ok,第三个if语句,如果z为真输出test ok,如果z为假第四条语句也输出 test ok
(3)如果x<3和y=3或y<3为假,则执行第二个if语句,x>=3&&y>=3不符合条件,则执行第三个if语句,z>3&&x>=3,为假,执行第四个if语句,z<=3&&y>=3,如果y=3是y表达式为真,判断z,如果z<=3则为真,输出Test Ok,否则为假.执行输出Test Failed!.如果y<3则直接输出,Test Failed,不用判断z表达式是否为真.
(4)如果x>=3和y=3或y<3为假,则执行第二个if语句,当y=3是输出Test Ok;如果y!=3这执行第三条if语句,z为真输出Test Ok,为假则输出Test failed!,
else if (x>=3 && y>=3)
printf("Test OK!\n");
总结:上面是多余的if判断语句
<四>switch语句
switch语句可以产生具有多个分支的控制流程.它的格式是: switch (控制表达式) {
case 常量表达式: 语句列表
case 常量表达式: 语句列表
...
default: 语句列表
} 例如以下程序根据传入的参数1~7分别打印Monday~Sunday:
#include <stdio.h>
void print_day(int day)
{
switch(day){
case 1:
printf("Monday\n");
break;
case 2:
printf("Tueseday\n");
break;
void print_day(int day)
{
switch(day){
case 1:
printf("Monday\n");

case 2:
printf("Tueseday\n");

case 3:
printf("Wednesda

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号