当前位置:蜗牛素材网>综合资讯>图文>正文

c语言双循环结构教学 C语言学习第9篇---C语言三大结构之二循环结构剖析

人气:495 ℃/2024-03-17 13:02:43

原文首发于同名微信公号「Allen5G」,欢迎大家搜索关注!

循环结构的基本工作方式:

通过条件表达式判断是否执行循环体

条件表达式遵循if语句表达式的原则

do ,while ,for 的区别

do:语句先执行后判断,循环体至少执行一次

while:先判断后执行,循环体可能不执行

for:先判断后执行,相比while更简洁一些

for(;;)和while(true)的区别:

在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for (;;)。这两种方法效果完全一样,但那一种更好呢?让我们看看它们编译后的代码:

编译前 编译后

while (1); mov eax,1

test eax,eax

je foo 23h

jmp foo 18h

编译前 编译后

for (;;); jmp foo 23h

一目了然,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。

do ... while语句的循环方式示意图

while的循环方式示意图

for的循环方式示意图

实验1:三种循环语句的对比

#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; int i = 0; for(i=1; i<=n; i ) { ret = i; } return ret;}int main(){ printf("%d\n", f1(100)); printf("%d\n", f2(100)); printf("%d\n", f3(100)); return 0;}

break和continue的区别:

break表示终止循环的执行

continue便是终止本次循环,进入下次循环执行

这个也是为什么switch不用continue的原因

实验2:continue和break的区别

#include <stdio.h>void f1(int n){ int i = 0; for(i=1; i<=n; i ) { if( (i % 2) == 0 ) { break; } printf("%d ", i); } printf("\n");}void f2(int n){ int i = 0; for(i=1; i<=n; i ) { if( (i % 2) == 0 ) { continue; } printf("%d ", i); } printf("\n");}int main(){ f1(10); f2(10); return 0;}

实验3:do和break的妙用

#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); return ret;}int main(){ if( func(10) ) { printf("OK\n"); } else { printf("ERROR\n"); } return 0;}

小结:

for循环先判断再进入循环体

for循环适合循环测试固定的场合

while循环先进判断再进入循环体执行

while循环适合与循环次数不定的场合

do ... while 循环先执行循环体再进行条件判断

do ... while 循环至少执行一次循环体

搜索更多有关“c语言双循环结构教学 C语言学习第9篇---C语言三大结构之二循环结构剖析”的信息 [百度搜索] [SoGou搜索] [头条搜索] [360搜索]
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2008-2024 蜗牛素材网 All Rights Reserved. 手机版