if语言中零值比较的注意点:
-bool型变量应该直接出现于条件中,不要进行比较
-变量和零值比较时,零值应该出现在比较符号左边
-float型变量不能直接进行零值比较,需要定义精度
1 bool b = true; 2 if(b) 3 { 4 //statement1 5 } 6 else 7 { 8 //statement2 9 } 10 /*============*/ 11 int i= 1; 12 13 if(0 == i) 14 { 15 //statement1 16 } 17 else 18 { 19 //statement2 20 } 21 22 /*============*/ 23 24 #define EPSION 0.00001 25 float f = 0.0 ; 26 27 if((-EPSION <= f) && (f <= EPSION)) 28 { 29 //statement1 30 } 31 else 32 { 33 //statement2 34 }
switch 语句分析:
-switch 语句对应单个条件多个分支的情形
-case语句分支必须要有break,否则会导致分支重叠
-default语句有必要加上,以处理特殊情况
1 #include <stdio.h> 2 3 void f1(int i) 4 { 5 switch( i < 6 ) 6 { 7 case 1: 8 printf("Failed! "); 9 break; 10 11 default: 12 switch( (6 <= i) && (i <= 8) ) 13 { 14 case 1: 15 printf("Good! "); 16 break; 17 18 default: 19 printf("Perfect! "); 20 break; 21 } 22 break; 23 } 24 } 25 26 void f2(char i) 27 { 28 if( 'c' == i ) 29 { 30 printf("Compile "); 31 } 32 else if( 'd' == i ) 33 { 34 printf("Debug "); 35 } 36 else if( 'o' == i ) 37 { 38 printf("Object "); 39 } 40 else if( 'r' == i ) 41 { 42 printf("Run "); 43 } 44 else 45 { 46 printf("Unknown "); 47 } 48 } 49 50 int main() 51 { 52 f1(5); 53 f1(9); 54 f1(7); 55 56 f2('o'); 57 f2('d'); 58 f2('e'); 59 60 return 0; 61 }
-case语句中的值只能是整型或字符型
-case语句的排列顺序
-按字母或数字顺序排列各条语句
-正常情况放在前面,异常情况放在后面
-default语句用于处理真正的默认情况。
小结:
-if语言适用于复杂逻辑进行判断的情况中
-switch语句适用于对离散值进行判断的情形;
-if语句和switch语句在功能上可以相互替换
-if语句对应“按片分支判断”的 情形更加简洁
-switch语句对应多分枝更加简洁