标签:
流程控制(是学习C语言的第一个重点)
1.什么是流程控制
程序代码执行的顺序
2.流程控制的分类
顺序执行
选择执行
定义
某些代码可能执行,也可能不执行,有选择的执行某些代码
分类
if
1.if最简单的用法
格式:
if (表达式)
语句
功能:
如果表达式为真,执行语句
如果表达式为假,语句不执行
1 /* 2 2015年3月31日 12:30:10 3 目的: 4 测试 if 的用法 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 if (3) 13 printf("AAAA\n"); //会输出 14 if (0) 15 printf("BBBB\n"); //不会输出 16 if (0 == 0) 17 printf("CCCC\n"); //会输出 18 19 return 0; 20 21 } 22 /* 23 在VC6.0中运行结果是: 24 ----------------------------- 25 AAAA 26 CCCC 27 ----------------------------- 28 */
2.if的范围问题
1.
if (表达式)
语句A;
语句B;
解释:if默认只能控制语句A的执行或不执行
if无法控制语句B的执行或不执行
或者讲:语句B一定会执行
1 /* 2 2015年3月31日 12:56:04 3 目的: 4 测试 if 的用法 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 if (1>2) 13 printf("AAAA\n"); //不会输出,因为if中条件为假 14 printf("BBBB\n"); //会输出,不受if控制 15 16 17 return 0; 18 19 } 20 /* 21 在VC6.0中运行结果是: 22 ----------------------------- 23 BBBB 24 ----------------------------- 25 总结: 26 if默认的只能控制一个语句的执行或不执行 27 */
2.
if (表达式)
{
语句A;
语句B;
}
此时if可以控制语句A和语句B
1 /* 2 2015年3月31日 13:04:38 3 目的: 4 测试 if 的用法 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 if (3>2) 13 { 14 printf("AAAA\n"); 15 printf("BBBB\n"); 16 } 17 18 19 return 0; 20 21 } 22 /* 23 在VC6.0中运行结果是: 24 ----------------------------- 25 AAAA 26 BBBB 27 ----------------------------- 28 总结: 29 if默认的只能控制一个语句的执行或不执行 30 如果想控制多个语句的执行或不执行 31 就必须把这些语句用{}括起来 32 */
3.if···else···的用法
1 /* 2 2015年3月31日 13:16:23 3 目的: 4 测试 if...else... 的用法 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 if (1 > 2) 13 printf("AAAA\n"); 14 else 15 printf("BBBB\n"); 16 17 printf("CCCC\n"); 18 19 return 0; 20 21 } 22 /* 23 在VC6.0中运行结果是: 24 ----------------------------- 25 BBBB 26 CCCC 27 ----------------------------- 28 总结: 29 30 */
4.if···else if···else···
if (1)
A; //如果1成立,执行A语句
else if (2)
B; //如果1不成立,2成立,执行B语句
else if (3)
C; //如果1、2不成立,3成立,执行C语句
else
D; //如果1、2、3都不成立,执行D语句
1 /* 2 2015年3月31日 18:13:31 3 目的: 4 if···else if···else··· 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 double delta = -1; 13 14 if (delta > 0) 15 printf("有两个解!\n"); 16 else if (delta == 0) 17 printf("有唯一解!\n"); 18 else 19 printf("无解!\n"); 20 21 return 0; 22 23 } 24 /* 25 在VC6.0中运行结果是: 26 ----------------------------- 27 无解! 28 ----------------------------- 29 总结: 30 */
5.C语言对真假的处理
非零是真
零是假
真用1表示
假用0表示
6.if举例——求分数的等级
1 /* 2 2015年3月31日 18:20:12 3 目的: 4 求分数的等级 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 float score; 13 14 printf("请输入考试成绩:"); 15 scanf("%f", &score); 16 17 if (score > 100) 18 printf("这不科学!\n"); 19 else if (score>=90 && score<=100) //不能写成 90<=score<=100 因为该式永远为真 20 printf("优秀!\n"); 21 else if (score>=80 && score<90) 22 printf("良好!\n"); 23 else if (score>=60 && score<80) 24 printf("及格!\n"); 25 else if (score>=0 && score<60) 26 printf("不及格!\n"); 27 else 28 printf("成绩为负值!\n"); 29 30 return 0; 31 32 } 33 /* 34 在VC6.0中运行结果是: 35 ----------------------------- 36 请输入考试成绩:99 37 优秀! 38 ----------------------------- 39 总结: 40 */
三个数排序
1 /* 2 2015年3月31日 18:34:05 3 目的: 4 三个数排序,由大到小 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 int a, b, c; 13 int t; 14 15 printf("请输入三个整数(中间以空格分隔):"); 16 scanf("%d %d %d", &a, &b, &c); 17 18 if (a < b) 19 { 20 t = a; 21 a = b; 22 b = t; 23 24 } 25 if (a < c) 26 { 27 t = a; 28 a = c; 29 c = t; 30 31 } 32 if (b < c) 33 { 34 t = b; 35 b = c; 36 c = t; 37 38 } 39 40 printf("%d %d %d\n", a, b, c); 41 42 return 0; 43 44 } 45 /* 46 在VC6.0中运行结果是: 47 ----------------------------- 48 请输入三个整数(中间以空格分隔):2 0 6 49 6 2 0 50 ----------------------------- 51 总结:该例用到了算法 52 */
7.if的常见问题解析
循环执行
标签:
原文地址:http://www.cnblogs.com/houhaibushihai/p/4380540.html