C分支语句的工程用法

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!\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语句对应多分枝更加简洁

posted @ 2018-12-15 09:38  lemaden  阅读(158)  评论(0编辑  收藏  举报