语言循环结构实验心得_C语言学习第9篇---C语言三大结构之二循环结构剖析

本文分享语言循环结构实验心得,介绍循环结构基本工作方式,通过条件表达式判断是否执行循环体。对比do、while、for三种循环语句的区别,还分析了for(;;)和while(true)编译后的代码差异,最后进行三种循环语句的对比实验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文首发于同名微信公号「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语句的循环方式示意图

30137ca9ae58613eccfe1add5ca87e44.png

while的循环方式示意图

e8e835fca7924b994ef0fb9b1a4676b4.png

for的循环方式示意图

66d09bba2f69ee2c4e453752ca50155b.png

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

#include 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值