三、流程控制
2015-07-19 12:02
190 查看
C语言中流程控制分为三种:顺序结构,选择结构,循环结构。
顺序结构:顺序结构,就是按照写程序的顺序依次执行下去,这是最简单的一种流程
选择结构:(if,if else,switch)选择结构就是通过判断是否满足条件,或者是否需要执行该步骤来选择要执行的代码。
循环结构:(while,do while,for)该结构就是在满足一定的条件下,就会循环执行某段代码。
一、顺序结构:
顺序结构就是一种很简单的结构,没有什么可以说的,就是按照程序的书写顺序执行程序。
二、选择结构(if,if else,switch):
if:
这段代码就执行了一个判断并选择执行代码的步骤:
if ( a == 7) 这里就表示如果 a的值等于7那么久执行下面大括号中的内容,在控制台输出”a等于7”。如果a的值不等于7那么就不会执行下面大括号中的代码。
这段代码与上面一段代码都是判断选择语句,但是是有区别的。这里会执行两个判断,这两个判断会同时执行判断,只要满足其中一个条件都会输出“a等于7”。
if else:
注意到这里和上一段程序有什么不一样吗(不管输出语句的内容)?多了一个else。这里多了一个else就有很大的不一样,在这里如果第一个if判断后满足条件就不会继续执行判断了。而上面代码中是不管是否满足第一个条件,后面的判断都会继续执行。
switch:
switch语句,switch()后面的括号内应该是整型表达式,当括号内的表达式的值等于下面case的值时就会执行相应case后面的语句。如:括号内的整型表达式的值等于8时就输出“你的成绩等级为B”,依次类推。同时也可以多个case执行同一个语句,如case10和case9。观察可以发现每个case后语句后面都会跟上一个break,这里的break作用是当满足一个条件后就会跳出整个选择语句,如果没有break则会继续执行后面case的语句,知道遇到break。
如:
上面注释掉了case8中的break,这个程序就会同时输出“你的成绩等级为B”和“你的成绩等级为C”。
三、循环结构:
while:
这段代码是在屏幕上输出10次Hello World。
while()的括号内跟上条件,如果条件满足则会执行后面大括号中的内容,直到条件不满足后才会跳出这个循环语句。
do while:
这里do while其实和while差不多,这里是先执行do后面大括号中的语句,再去判断是否满足条件,如果满足则会再次循环do后面大括号的语句,知道不满足条件。(注意:这里是不管满不满足条件都会先执行一遍do后面大括号的语句,再判断是否满足条件,是否再次循环执行)。
for:
for语句在执行时会最先执行for后面的第一个语句 a = 0 ,然后则会判断条件是否符合(执行 a<10 ),如果满足条件就会执行后面大括号中的内容,然后再执行 a++ 这个语句,再判断条件,如此循环,知道条件不满足则会跳出这个循环。
注意:如果for后面括号中的 语句1 和 语句2 是多个表达式可以用“ , ”隔开。
如:
这里会输出:
continue:
continue其实也和上面讲到的break的用法差不多,continue是用来跳出循环的,这里就不多作解释,直接上代码作为示例来解释吧:
continue只能在循环中使用,它的作用是跳出本次循环,进入到下一次的循环中,注意 if 中的语句,当x%2==0,也就是当x是2的倍数时,就跳过这次循环,不执行 printf(“x = %d \n”,x) 语句,直接进入下一次循环。
输出结果:
顺序结构:顺序结构,就是按照写程序的顺序依次执行下去,这是最简单的一种流程
选择结构:(if,if else,switch)选择结构就是通过判断是否满足条件,或者是否需要执行该步骤来选择要执行的代码。
循环结构:(while,do while,for)该结构就是在满足一定的条件下,就会循环执行某段代码。
一、顺序结构:
顺序结构就是一种很简单的结构,没有什么可以说的,就是按照程序的书写顺序执行程序。
二、选择结构(if,if else,switch):
if:
if (a == 7) { printf("a等于7"); }
这段代码就执行了一个判断并选择执行代码的步骤:
if ( a == 7) 这里就表示如果 a的值等于7那么久执行下面大括号中的内容,在控制台输出”a等于7”。如果a的值不等于7那么就不会执行下面大括号中的代码。
<span style="font-size:12px;">if (a == 7) { printf("a等于7"); } if (a < = 7) { printf("a等于7"); }</span><span style="font-size:14px;"> </span>
这段代码与上面一段代码都是判断选择语句,但是是有区别的。这里会执行两个判断,这两个判断会同时执行判断,只要满足其中一个条件都会输出“a等于7”。
if else:
if (a == 7) { printf("a等于7"); } else if (a < 7) { printf("a小于7"); }
注意到这里和上一段程序有什么不一样吗(不管输出语句的内容)?多了一个else。这里多了一个else就有很大的不一样,在这里如果第一个if判断后满足条件就不会继续执行判断了。而上面代码中是不管是否满足第一个条件,后面的判断都会继续执行。
switch:
switch ((int)a / 10) { case 10: case 9: printf("你成绩的等级为A\n"); break; case 8: printf("你成绩的等级为B\n"); break; case 7: case 6: printf("你成绩的等级为C\n"); break; default: printf("你成绩的等级为D\n"); break; }
switch语句,switch()后面的括号内应该是整型表达式,当括号内的表达式的值等于下面case的值时就会执行相应case后面的语句。如:括号内的整型表达式的值等于8时就输出“你的成绩等级为B”,依次类推。同时也可以多个case执行同一个语句,如case10和case9。观察可以发现每个case后语句后面都会跟上一个break,这里的break作用是当满足一个条件后就会跳出整个选择语句,如果没有break则会继续执行后面case的语句,知道遇到break。
如:
switch ((int)a / 10) { case 10: case 9: printf("你成绩的等级为A\n"); break; case 8: printf("你成绩的等级为B\n"); // break; case 7: case 6: printf("你成绩的等级为C\n"); break; default: printf("你成绩的等级为D\n"); break; }
上面注释掉了case8中的break,这个程序就会同时输出“你的成绩等级为B”和“你的成绩等级为C”。
三、循环结构:
while:
int count = 0; while ( count < 10 ) { printf("Hello World\n"); count++; }
这段代码是在屏幕上输出10次Hello World。
while()的括号内跟上条件,如果条件满足则会执行后面大括号中的内容,直到条件不满足后才会跳出这个循环语句。
do while:
do { 语句1; 语句2; …. } while (条件);
这里do while其实和while差不多,这里是先执行do后面大括号中的语句,再去判断是否满足条件,如果满足则会再次循环do后面大括号的语句,知道不满足条件。(注意:这里是不管满不满足条件都会先执行一遍do后面大括号的语句,再判断是否满足条件,是否再次循环执行)。
for:
for (语句1; 条件; 语句2) { 语句3; 语句4; } int a; for (a = 0; a <10; a++) { printf("Hello World\n"); }
for语句在执行时会最先执行for后面的第一个语句 a = 0 ,然后则会判断条件是否符合(执行 a<10 ),如果满足条件就会执行后面大括号中的内容,然后再执行 a++ 这个语句,再判断条件,如此循环,知道条件不满足则会跳出这个循环。
注意:如果for后面括号中的 语句1 和 语句2 是多个表达式可以用“ , ”隔开。
如:
for (int x = 0, y =0; x<3; x++, y+=2) { printf("x=%d, y=%d \n", x, y); }
这里会输出:
x=0, y=0 x=1, y=2 x=2, y=4
continue:
continue其实也和上面讲到的break的用法差不多,continue是用来跳出循环的,这里就不多作解释,直接上代码作为示例来解释吧:
for (int x = 0; x<10; x++) { if (x%2==0) { continue; } printf("x=%d \n", x); }
continue只能在循环中使用,它的作用是跳出本次循环,进入到下一次的循环中,注意 if 中的语句,当x%2==0,也就是当x是2的倍数时,就跳过这次循环,不执行 printf(“x = %d \n”,x) 语句,直接进入下一次循环。
输出结果:
x = 1 x = 3 x = 5 x = 7 x = 9
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- C语言进制转换代码分享