C语言循环for、while、do while、continue、break 、goto控制语
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了允许更为复杂的执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式: 循环类型C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。 循环类型 描述 while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 for 循环 多次执行一个语句序列,简化管理循环变量的代码。 do...while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 (1)while 循环 格式如下: while ( 条件 ){ 语句1; 语句2; .... } 1)如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 2)while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行 例如: /* 输出十次hello world */ int main(){ int i = 0; while (i < 10) { printf("Hello world!----%dn",i); i++; } } 如果省略第11行的i++,count就一直是i,那么i<10一直都是成立的,这个while循环将会陷入“死循环”,一直在重复执行第10行代码。 (2)do while 循环 格式如下: do { 语句1; 语句2; ... } while (条件); 1)注意第5行,后面是加上一个分号;的 2)当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 3)do-while循环的特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍 4)其实do while循环的用法跟while循环是差不多的,这里就不举例子了。 (3)for循环 for循环是所有循环结构中最复杂的。 for (语句1; 条件; 语句2) { 语句3; 语句4; ... } 1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1 2)接着判断条件,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容) 3)循环体执行完毕后,接下来会执行语句2,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环 例如 : int main(){ /* 利用循环输出: 1 1 2 1 2 3 */ for (int i =1 ; i <= 3; i++) { for (int j = 1; j <= i; j++) { printf("%d ",j); } printf("n"); } return 0; } 输出结果为: 1 1 2 1 2 3 循环控制语句循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。 C 提供了下列的控制语句。点击链接查看每个语句的细节。 控制语句 描述 break 语句 终止loop或switch语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。 continue 语句 引起循环跳过主体的剩余部分,立即重新开始测试条件。 goto 语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 (1) break 前面在switch语句中已经用到了break,它的作用是跳出switch语句。它也可以用在循环结构中,这时候它的作用是跳出整个循环语句。 这里以for循环为例子,break也可以用在while循环、do-while循环中。 for (int i = 0; i<5; i++) { printf("i=%d n",i); if (i>2) { break; } } 上面代码的意思是当i>2时,就跳出整个for循环,也就是结束for循环,所以输出结果是: i=0 i=1 i=2 i=3 (2)continue continue只能使用在循环结构中,它的作用是跳过这一次循环,直接进入下一次循环。 这里以for循环为例子,continue也可以用在while循环、do-while循环中。 for (int x = 0; x<10; x++) { if (x%2==0) { continue; } printf("x=%d n",x); } 注意第2行,当x%2==0,也就是当x是2的倍数时,就跳过这次循环,不执行第6行语句,直接进入下一次循环。输出结果: x=1 x=3 x=5 x=7 x=9 跟break一样,continue只会影响它所在的那个for循环 无限循环如果条件永远不为假,则循环将变成无限循环。for循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。 #include int main () { for( ; ; ) { printf("This loop will run forever.n"); } return 0; } 当条件表达式不存在时,它被假设为真。您也可以设置一个初始值和增量表达式,但是一般情况下,C 程序员偏向于使用 for(;;) 结构来表示一个无限循环。 注意:您可以按 Ctrl + C 键终止一个无限循环。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – WP8.1应用程序在调用RequestProductPurchaseAsync时崩
- ruby-on-rails – Rails语法错误:意外的keyword_ensure,期
- The Flash Memory Read-out protection option must be dis
- 想要使用AVFoundation框架在iphone相机中进行缩放功能
- minicom 无法传输文件至开发板
- for-loop – 在for-in循环中类型转换
- C++快速排序(随机值元法)
- dart – Flutter中可折叠列表小部件的选项有哪些?
- 详解vue移动端项目的适配(以mint-ui为例)
- ajax请求服务器数据包含中文处理以及MVC中下载文件名在ie和