A.注
0为假,非0为真
if后面只管一个语句,要管多个要用大括号
=为赋值 ==表示判断
break是跳出整个语句,continue是跳出本条语句
B.第三章
1.关系表达式
表达式的数值只有1 真 和0 假
如6>9这个表达式是假的,那么它的数值就为0
9>6是真的,那么数值为1
例:
int x=1,y=0,z=2;
x<y<z; 表达式为真 1<0是假的,结果为0,0<2结果是真的
2.逻辑表达式
表达式的数值只有1 真和0 假
优先级:!>&&> |
a.逻辑与 &&
式子两边都为真的,整个逻辑表达式的数值才为真,否则为假
运算时式子左边的如果为假,那么右边的就不用计算了
如:
main()
{
int a,b,c,d;
a = 0;
b = 1;
c = 2;
d = a++ && b++ && --c;
printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);
}
a++实现使用a的数值再自加,a的初始值为0,所以(a++)为假,b++和c++就不用计算了
结果:a=1 b=1 c=2 d=0
b.逻辑或 ||
式子两边只要有一个为真,那么整个式子就为真
运算时如果式子左边为真,那右边就不用计算了
如:
main()
{
int a,b,c,d;
a = 0;
b = 1;
c = 2;
d = a++ || b++ || --c;
printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);
}
a++先使用a的数值在自加,所以a++为假,就判断b++,同理,b为1,则b++为真,整个式子都 为真,那么便不执 行--c
结果:a=1 b=2 c=2 d=1
3. if 语句
else 是与最接近的 if 且没有else的语句匹配
如:
int a=1,b=0;
if(!a)
b++;
else if(a= =0)
if(a)
b+=2;
else
b+=3;
问b的值为多少?
int a=1,b=0;
if(!a)
b++; //为假不执行
else if(a= =0) //为假不执行
if(a) //是else if的嵌套语句,不执行
b+=2;
else //与最上面的if匹配,执行
b+=3;
4.条件表达式
表达式 1 ? 表达式 2 :表达式 3
真前假后
当表达式1是真,也就是非0时,结果为表达式2的运算数值;
当表达式1为假,也就是0时,结果为表达式3的运算数值。