
c语言if语句的用法
-中医外治
2023年2月16日发(作者:故宫的图片)If语句知识点总结
一.if语句的三种基本形式
(1)if(表达式)语句;
x>y
Printf(x)
真
假
例:if(x>y)printf(“%d”,x);
(2)if(表达式)语句1;
else语句2;
x>y
xy
YN
例:if(x>y)printf(“%d”,x);
elseprintf(“%d”,y);
(3)if(表达式1)语句1;
elseif(表达式2)语句2;
elseif(表达式3)语句3;
……
elseif(表达式m)语句m;
else语句n;
例:if(number>10)cost=0.15;
elseif(number>30)cost=0.10;
elseif(number>100)cost=0.075;
elseif(number>500)cost=0.05;
elsecost=0.01;
c语言中的六大陷阱
(表达式)一般为逻辑表达式或关系表达式输出1/0,但原则上可以
是任何变量、常量和表达式;
(常量)--C语言中任何非零的数都被认作为真;
例一:inti=5;
if(2)printf("%dn",++i);
elseprintf("%dn",--i);输出值:6
例二:inti=5,a=3,b;
if(b=a)printf("%dn",++i);
/*上面括号里“b=a”即将a的值赋给b,所以该条件为真*/
elseprintf("%dn",--i);输出值:6
例三:inti=5,a=3,b=9;
if(b==a)printf("%dn",++i);
/*括号中“==”含义为“等于”,所以是假*/
elseprintf("%dn",--i);输出值:4
3.注意:if(表达式)语句;表达式里面是"=="还是"="
4.如果if后面的表达式是多个关系表达式,要注意关系运算符
是两两进行比较的!!!!!!!
inta=6,b=5,c=4,i=5;
if(a>b>c)printf("%dn",++i);
/*括号中“a>b>c”,先判断“a>b”,为真,值为1;然后判断“1>c”,
为假,所以“a>b>c”为假*/
elseprintf("%dn",--i);输出值:4
5.复合语句:>=2条的语句用{}括起来,共同完成一定功能
注意复合语句的用法!
6.在上机改错题中,如果在if语句后面的表达式中出现“=”,90%要将
“=”改为“==”。
可乐雪碧原理/*输入两个实数,由小到大输出*/
超级考点:交换
e.g.#include
voidmain()
{
inta,b,t;
printf(“请输入a,b的值:n”);
scanf(“%d,%d”,&a,&b);
if(a>b);
t=a;
a=b;
b=t;
printf(“%d,%dn”,a,b);
}
注:1.如果在程序中遇到变量t或temp,就要联想变换;
2.验证程序结果一定要全面!
3.逻辑改错。
4.不得增加行,不得删掉行。
交换:(a>b)t=a;a=b;b=t;不是交换!!!
/*分号标志此语句结束,在运行“t=a”后,此语句已经结束
*/
2.正宗的交换有以下两种形式:
1)if(a>b)t=a,a=b,b=t;
2)if(a>b){t=a;a=b;b=t;}
(a>b);{t=a;a=b;b=t}/*这个语句为空语句,注意!
!!*/
“;”是语句结束的标志。
if(a>b){t=a;a=b;b=t;}
if(b>c){t=a;b=c;c=t;}
if(a>c){t=a;a=c;c=t;}
/*上面的程序错误,正确应该第二条和第三条交换位置*/
e.g.a=58,b=96,c=12
(0)不交换a=58,b=96,c=12
(1)交换a=58,b=12,c=96
(0)不交换a58,b=12,c=96
短路现象:【空语句】
e.g.#include
voidmain( )
{
int i=1,j=1,k=2;
if (j++||k++)&(i++);
printf("%d,%d,%d\n",i,j,k);
}
执行后输出的结果是(C)
A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3
e.g.以下程序运行后的结果是(yes)
#include
voidmain( )
{
int a=1,b=3,c=5;
if (c=a+b);/*前面括号中“c=a+b”意为将
“a+b”的值赋给c,非零输出*/
printf("yes\n");
else
printf("no\n");
}