C分支語句的工程用法
阿新 • • 發佈:2018-12-15
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 //statement220 } 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> 23 void f1(int i) 4 { 5 switch( i < 6 ) 6 { 7 case 1: 8 printf("Failed!\n"); 9 break; 10 11 default: 12 switch( (6 <= i) && (i <= 8) ) 13 { 14 case 1: 15 printf("Good!\n"); 16 break; 17 18 default: 19 printf("Perfect!\n"); 20 break; 21 } 22 break; 23 } 24 } 25 26 void f2(char i) 27 { 28 if( 'c' == i ) 29 { 30 printf("Compile\n"); 31 } 32 else if( 'd' == i ) 33 { 34 printf("Debug\n"); 35 } 36 else if( 'o' == i ) 37 { 38 printf("Object\n"); 39 } 40 else if( 'r' == i ) 41 { 42 printf("Run\n"); 43 } 44 else 45 { 46 printf("Unknown\n"); 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語句對應多分枝更加簡潔