| 
 
| 1.if语句分析 if语句用于根据条件选择执行语句
 esle不能独立存在且总是与它最接近的if相匹配
 else 语句后可以接连其它if语句
 if语句中零值比较注意点
 A.bool型变量应该出现于条件中,不能进行比较,直接使用
 B.变量和0值比较时,0值应该出现在比较符号的左边,避免将==写为=
 C.float 型变量不能直接进行0值比较,需要定义精度
 
 示例:
 void f1(int i)
 {
 if (i < 6)
 {
 printf("Failed!\n");
 }
 else if ((6 <= i) && (i <= 8))
 {
 printf("Good!\n");
 }
 else
 {
 printf("Perfect!\n");
 }
 }
 2.switch 语句分析
 switch 语句对应当个条件多个分支的情形
 case 语句分支必须要break,否则导致分支重叠
 case 语句中的值只能是整型或字符型
 case 语句的排列顺序
 A.按照字母或数字顺序排列各条语句
 B.正常情况下放在前面,异常放在后面
 C.default语句只能用于处理真正的默认情况
 default 语句有必要加上,以处理特殊情况
 示例:
 void f(int i)
 {
 switch (i < 6)
 {
 case 1:
 printf("Failed!\n");
 break;
 default:
 switch ((6 <= i) && (i <= 8))
 {
 case 1:
 printf("Good!\n");
 break;
 default:
 printf("Perfect!\n");
 break;
 }
 break;
 }
 }
 3.小结
 if 语句适用于复杂逻辑进行判断的情形中
 switch语句用于对离散值进行判断的情况
 if和switch语句在功能上可以相互替换的
 if语句对于“按片”分支判断的情形更加简洁
 switch语句对于多分支的情形更加简洁
 
 第七课 循环语句分析
 1.循环语句分析
 循环语句的基本工作方式
 A.通过条件表达式判定是否执行循环体
 B.条件表达式遵循if语句表达式的原则
 do,while,for的区别
 A.do 语句先执行后判断,循环体至少执行一次
 B.while 语句先判断后执行,循环体可能不执行
 C.for语句先判断后执行,相比while更简洁
 2.do...while循环方式
 
 3.while循环方式
 
 
 4.for循环方式
 
 5.示例:计算1加到100的值
 #include<stdio.h>
 int f1(int n)
 {
 int ret = 0;
 if (n > 0)
 {
 do
 {
 ret += n;
 n--;
 } while (n > 0);
 }
 return ret;
 }
 int f2(int n)
 {
 int ret = 0;
 while (n > 0)
 {
 ret += n;
 n--;
 }
 return ret;
 }
 int f3(int n)
 {
 int ret = 0;
 for (int i = 0; i <= n; i++)
 {
 ret += i;
 }
 return ret;
 }
 int main1()
 {
 printf("%d\n", f1(100));
 printf("%d\n", f2(100));
 printf("%d\n", f2(100));
 getchar();
 return 0;
 }
 6.break 和 continue 的区别
 break 表示终止循环的执行
 continue表示终止本次循环,进入下次循环执行
 示例:
 void f11(int n)
 {
 int i = 0;
 for (i = 1; i <= n; i++)
 {
 if ((i % 2) == 0)
 {
 break;
 }
 printf("%d ", i);
 }
 printf("\n");
 }
 void f22(int n)
 {
 int i = 0;
 for (i = 1; i <= n; i++)
 {
 if ((i % 2) == 0)
 {
 continue;
 }
 printf("%d ", i);
 }
 printf("\n");
 }
 int main2()
 {
 f11(10);
 f22(10);
 getchar();
 return 0;
 }
 7.do...while(0)妙用----避免内存泄漏案例
 #include <stdio.h>
 #include <malloc.h>
 int func(int n)
 {
 int i = 0;
 int ret = 0;
 int* p = (int*)malloc(sizeof(int) * n);
 do
 {
 if (NULL == p) break;
 if (n < 5) break;
 if (n > 100) break;
 for (i = 0; i<n; i++)
 {
 p[i] = i;
 printf("%d\n", p[i]);
 }
 ret = 1;
 } while (0);
 printf("free(p)\n");
 free(p);//do while 可以方便是释放
 return ret;
 }
 int main()
 {
 if (func(10))
 {
 printf("OK\n");
 }
 else
 {
 printf("ERROR\n");
 }
 getchar();
 return 0;
 }
 8.小结
 for 循环先进行判断在进入循环体
 循环适合于次数固定的场合
 while 循环先进行判断再进入循环体执行
 while 循环适合于循环次数不定的场合
 do...while 循环先执行循环体再进行条件判断
 do...while 循环体至少执行一次循环体
 | 
 |