快速业务通道

第 4 章 分支语句

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16
a=3,b=2,则(3/2)*2 3%2=3==>1*2 1=3;若a=-3,b=2,则(-3/2)*2 -3%2 = -3,编译器编译这样的程序原则是:-(3/2) (2*(-1)-1)%2= -3;再如:a=3,b=-2,则(3/-2)*(-2) 3%(-2)=3==>-3/2*(-2) (-2*(-1) 1)%-2=3 可以得到一个结论:%运算符的结果总是与被除数同号
可以编写简单的代码测试
#include <stdio.h>
int main()
{
int a=-3,b=2,x=3,y=-2;
printf("%d\n",a%b);
printf("%d\n",x%y);
return 0;
}
运行结果是
-1
1 回到我们上面的if...else语句中,例子判断x的奇偶性(Parity),看x除以2的余数是否为0,如果为0打印x is even.,如果不是0则打印x is odd.,读者应该能看出else在这里的作用了,如果在上面的例子中去掉else,则不管x是奇是偶,printf("x is odd.\n");总是执行.为了让这条语句更有用,可以把它封装(Encapsulate)成一个函数:
void print_parity(int x)
{
if (x % 2 == 0)
printf("x is even.\n");
else
printf("x is odd.\n");
}
把语句封装成函数的基本步骤是:把语句放到函数体中,把变量改成函数的参数.这样,以后要检查一个数的奇偶性只需调用这个函数而不必重复写这条语句了,例如:
print_parity(17);
print_parity(18); #include <stdio.h> void print_parity(int x)
{
if (x % 2 == 0)
printf("x is even.\n");
else
printf("x is odd.\n");
} int main()
{
print_parity(15);
print_parity(16);
return 0;
}
if或if...else语句的嵌套,下面说一下if ..else 语句的嵌套 if (x > 0)
printf("x is positive.\n");
else if (x < 0)
printf("x is negative.\n");
else
printf("x is zero.\n");
C语言规定,else总是和它上面最近的一个if配对
如:
if(A)
if(B)
c;
else
D;
如果想要第一个if和else配对则可以这样写:
if(A)
{
if(B)
C;
}
else
{
D;
}
习题
1、写两个表达式,分别取整型变量x的个位和十位. 2、写一个函数,参数是整型变量x,功能是打印x的个位和十位.
#include <stdio.h>
int main()
{
int x,a,b;
printf("plase input x:\n");
scanf("%d",&x);
a=x-x/10*10;
b=x/10;
printf("%d,%d\n",a,b);
return 0;
}
#include <stdio.h>
void print_xx(int c)
{
int a,b;
a=c-c/10*10;
b=c/10;
printf("%d,%d\n",a,b);

}
int main()
{
int x;
printf("plase input x:\n");
scanf("%d",&x);
print_xx(x);
return 0;
} <三>布尔代数 数学中的a<b<c,在C语言是用下列方法表示的:
if (a < b) {
if (b < c) {
printf("b is between a and c.\n");
}
}
也可以用逻辑与(Logical AND)运算符表示两个条件同时成立:
if (a < b && b < c) {
printf("b is between a and c.\n");
}
两个表达式为真才为真. AND的真值表
A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1
这种表称为真值表(Truth Table).注意逻辑与运算的操作数以非0表示真以0表示假,而运算结果以1表示真以0表示假(类型是int),我们忽略这些细微的差别,在表中全部以1表示真以0表示假.C语言还提供了逻辑或(Logical OR)运算符,写成两个|线(Pipe Sign),逻辑非(Logical NOT)运算符,写成一个!号(Exclamation Mark),它们的真值表如下:
表 4.3. OR的真值表 A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1 表 4.4. NOT的真值表 A NOT A
0 1
1 0
逻辑或表示两个条件只要有一个为真,它们做逻辑或运算的结果就为真逻辑非运算符只有一个操作数,称为单目运算符(Unary Operator),以前讲过的加减乘除、赋值、相等性

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号