c语言中if语句知识点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
If语句知识点总结
一. if语句的三种基本形式
(1)if (表达式)语句;
例:if(x>y) printf(“%d”,x);
(2)if(表达式) 语句1;
else语句2;
例:if (x>y) printf(“%d”,x);
else printf(“%d”,y);
(3)if(表达式1)语句1;
else if(表达式2)语句2;
else if(表达式3)语句3;
……
else if(表达式m)语句m;
else 语句n;
例:if (number>10)cost=0.15;
else if(number>30)cost=0.10;
else if(number>100)cost=0.075;
else if(number>500)cost=0.05;
else cost=0.01;
c语言中的六大陷阱
1.if(表达式)一般为逻辑表达式或关系表达式输出1/0,但原则上可以是任何变量、常量和表达式;
2.if(常量)--C语言中任何非零的数都被认作为真;
例一:int i=5;
if(2)printf("%d\n",++i);
else printf("%d\n",--i); 输出值:6
例二:int i=5,a=3,b;
if(b=a)printf("%d\n",++i);
/*上面括号里“b=a”即将a的值赋给b,所以该条件为真*/
else printf("%d\n",--i); 输出值:6
例三:int i=5,a=3,b=9;
if(b==a)printf("%d\n",++i);
/*括号中“==”含义为“等于”,所以是假*/
else printf("%d\n",--i); 输出值:4
3.注意:if(表达式)语句;表达式里面是"=="还是"="
4.如果if后面的表达式是多个关系表达式,要注意关系运算符
是两两进行比较的!!!!!!!
int a=6,b=5,c=4,i=5;
if(a>b>c)printf("%d\n",++i);
/*括号中“a>b>c”,先判断“a>b”,为真,值为1;然后判断“1>c”,为假,所以“a>b>c”为假*/
else printf("%d\n",--i); 输出值:4
5.复合语句:>=2条的语句用{}括起来,共同完成一定功能
注意复合语句的用法!
6.在上机改错题中,如果在if语句后面的表达式中出现“=”,90%要将“=”改为“==”。
可乐雪碧原理/*输入两个实数,由小到大输出*/
超级考点:交换
e.g. #include <stdio.h>
void main( )
{
int a,b,t;
printf(“请输入a,b的值:\n”);
scanf(“%d,%d”,&a, &b);
if(a>b);
t=a;
a=b;
b=t;
printf(“%d,%d\n”,a,b);
}
注:1.如果在程序中遇到变量t或temp,就要联想变换;
2.验证程序结果一定要全面!
3.逻辑改错。
4.不得增加行,不得删掉行。
交换:1.if(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;}
3.if (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
1.if(0) 不交换 a=58,b=96,c=12
2.if(1) 交换 a=58,b=12,c=96
3.if(0) 不交换 a58,b=12,c=96
短路现象:【空语句】
e.g.#include <stdio.h>
void main ( )
{
inti=1,j=1,k=2;
if(j++|| k++)&(i++);
printf("%d,%d,%d\n",i,j,k);
}
执行后输出的结果是(C)
A.1,1,2B.2,2,1C.2,2,2D.2,2,3e.g.以下程序运行后的结果是(yes)
#include <stdio.h>
void main ( )
{
inta=1,b=3,c=5;
if(c=a+b);/*前面括号中“c=a+b”意为将
“a+b”的值赋给c,非零输出*/
printf("yes\n");
else
printf("no\n");
}。