1、 If 语句知识点总结一.if 语句的三种基本形式(1)if(表达式)语句;xyPrintf(x)真假例:if(xy)printf(“%d”,x);(2)if(表达式)语句 1;else 语句 2;xyxyYN例:if(xy)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(number10)cost=0.15;else if(number30)cost=0.10;else if(number100
2、)cost=0.075;else if(number500)cost=0.05;else cost=0.01;c c 语言中的六大陷阱语言中的六大陷阱 1.if(表达式)一般为逻辑表达式或关系表达式输出 1/0,但原则上可以是任何变量、常量和表达式;2.if(常量)-C 语言中任何非零的数都被认作为真;例一:int i=5;if(2)printf(%dn,+i);else printf(%dn,-i);输出值:6 6 例二:int i=5,a=3,b;if(b=a)printf(%dn,+i);/*上面括号里“b=a”即将 a 的值赋给 b,所以该条件为真*/else printf(%dn,-
3、i);输出值:6 6 例三:int i=5,a=3,b=9;if(b=a)printf(%dn,+i);/*括号中“=”含义为“等于”,所以是假*/else printf(%dn,-i);输出值:4 43.注意:if(表达式)语句;表达式里面是=还是=4.如果 if 后面的表达式是多个关系表达式,要注意关系运算符 是两两进行比较的!int a=6,b=5,c=4,i=5;if(abc)printf(%dn,+i);/*括号中“abc”,先判断“ab”,为真,值为 1;然后判断“1c”,为假,所以“abc”为假*/else printf(%dn,-i);输出值:4 45.复合语句:=2 条的语句
4、用括起来,共同完成一定功能 注意复合语句的用法!6.在上机改错题中,如果在 if 语句后面的表达式中出现“=”,90%要将“=”改为“=”。可乐雪碧原理可乐雪碧原理/*/*输入两个实数,由小到大输出输入两个实数,由小到大输出*/*/超级考点:交换超级考点:交换e.g.#include void main()int a,b,t;printf(“请输入 a,b 的值:n”);scanf(“%d,%d”,&a,&b);if(ab);t=a;a=b;b=t;printf(“%d,%dn”,a,b);注:1.如果在程序中遇到变量 t 或 temp,就要联想变换;2.验证程序结果一定要全面!3.逻辑改错。
5、4.不得增加行,不得删掉行。交换:1.if(ab)t=a;a=b;b=t;不是交换!不是交换!/*分号标志此语句结束,在运行“t=a”后,此语句已经结束*/2.正宗的交换有以下两种形式:1)if(ab)t=a,a=b,b=t;2)if(ab)t=a;a=b;b=t;3.if(ab);t=a;a=b;b=t/*这个语句为空语句,注意!*/“;”是语句结束的标志。if(ab)t=a;a=b;b=t;if(bc)t=a;b=c;c=t;if(ac)t=a;a=c;c=t;/*上面的程序错误,正确应该第二条和第三条交换位置*/e.g.a=58,b=96,c=121.if(0)不交换 a=58,b=96,c=122.if(1)交换 a=58,b=12,c=963.if(0)不交换 a58,b=12,c=96短路现象:【空语句】#include void main(),;(|)();(,);执行后输出的结果是(),以下程序运行后的结果是()#include void main(),;();前面括号中“”意为将 “”的值赋给,非零输出();();