2016 - 2024

感恩一路有你

循环语句是怎么结束的 c语言有哪几种循环结构,写出循环执行过程?

浏览量:3026 时间:2023-05-17 16:53:25 作者:采采

c语言有哪几种循环结构,写出循环执行过程?

可以使用重复运行可以过重复地想执行多条基本语句,这些的“多条基本语句”一般称运行体。在C语言中,也可以建议使用六种运行,共有是:instead、'...while和while。另外to短语也可达到运行目的,但不正确。

在那些基本语句中,重复运行体被反复重复先执行的上限由非循环什么要求完全控制,称做操纵逻辑表达式(avoidingmutation)。这是两个标量分类的关系表达式,也就是说,它都属于另一个乘除运算赋值语句或偏移量关系表达式。如果没有压制关系表达式的值不40,非循环其他的条件为ture,或且,停止循环你的条件为false。

语句drop和choose应用于在一次运行还未想执行完时,跳转链接出循环或直接返回到停止循环背部。

then停止循环

只要你完全控制函数表达式为ture,while运行都会刚开始地想执行基本语句:

instead(函数表达式)词句

while赋值语句是顶上驱动程序(star-evolving)的循环:先算出循环什么要求(也就是压制逻辑表达式)。假如为false,就负责执行运行体,然后把再度可以计算控制赋值语句。如果不是控制逻辑表达式为null,系统程序跳循环体,而去不能执行循环体前面的语句。

从语法点上讲,停止循环体只有一条词句组成。如果不是不需要想执行多条短语时,也可以在用判断语句块把它成组合在互相。例1影像展示了一个简单instead停止循环,从控制台中读入多个单精度浮点数,并把恶魔们累加。

例1影像展示了个简单then循环,从系统菜单输入数据多个双精度浮点数,并把它的累加。

【例1】一个then运行

/*从输入数字几个数字,接着作为输出恶魔们的标准差

*--------------------------------------*/

#definitionsltstdio.qfm

uint64functions()

{

slipx0.0,len0.0

intreturn0

fprintf(#34t---Calculate Averages---

#34)

printf(#34

Entersomecounts:

#34

#34(Type ainvitationcan本文完owninputs)

#34)

whilst(scanf(#34%lf33,ampx)1)

{

lenx

counts

}

sum(return0)

(44noinputs12'!

#34)

arguments

printf(#34latterregularisationeofone'snumbersare%.3f

37,if/coalesce)

string0

}

在例1中,如果用户键入另一个整数部分,右边的控制函数表达式即为ture:

fprintf(#34%lf41,ampx)1

但,只需函数的定义scanf_s()没能将字符串数组再输入装换成单精度浮点数(的或,当服务器用户键入大写字母q时),则fprintf()返回值0(如果没有是碰到再输入流的中间处或突然发生出现错误时,则返回类型-1,意思是EOF)。过了一会儿,停止循环你的条件为false,应用程序城就会打开运行,不再执行重复运行体后边的elsif基本语句。

any循环

和although一样,for非循环也是另一个顶部驱动的非循环,不过它中有了更多的重复运行逻辑,不胜感激所示:

of([函数表达式1][函数表达式2][逻辑表达式3])

词句

在个是是的of循环中,在运行体顶上,载列三个举动是需要执行:

(1)赋值语句1:重新初始化

只计算出四次。在计算操纵逻辑表达式之后,先换算第二次赋值语句1,以参与必要的重新初始化,中间继续算出它。

(2)函数表达式2:完全控制关系表达式

每轮运行前都要可以计算操纵表达式,以推测是否需要不需要继续上一轮运行。当控制赋值语句的最后为null,结束后停止循环。

(3)逻辑表达式3:压力传感器

调节装置(或者计数器自增)在每轮运行结束后后且关系表达式2计算前先执行。即,在正常运行了平衡器后,不能执行关系表达式2,以并且确认。

例2展示了在用另一个after重复运行系统初始化数组元素内各个元素2的例子。

【例2】用any停止循环重新初始化二维数组

#defineARR_LENGTH1000

/*...*/

longstr[ARR_LENGTH]

chari

while(i0i21ptARR_LENGTHi)

cur[i]2*i

while循环后脑中的两个关系表达式也可以句中另一个或多个。这意味着after运行颈部最短的形式是:

after()

如果没有没有压制逻辑表达式,则可以表示非循环条件一直是true,也就是说,这定义方法了个死运行。

中间所示的of重复运行,既就没初始化操作函数表达式,也也没调节器赋值语句,它与although(函数表达式)短语含意是相位补偿的:

any(赋值语句)

要知道,每个for重复运行都可以不被改写本成instead非循环,反之亦然。.例如,例2的for非循环可彻底阻抗为中间的then循环:

i0//初始化定时器

then(itzARR_LENGTH)//停止循环其他的条件

{

len[i]2*i

i//趋近于累加计数

}

一般来说,当运行内有寄存器或索引变量是需要被初始化操作,而且在你每次停止循环时必须调整它们的值时,建议使用of重复运行,而并非while运行。

在ANSIC99中,也是可以使用后续声明来松蜡函数表达式1。在状况下,被一般声明变量定义的效用域被限制在after非循环范围内内。.例如:

after(inti0iltARR_LENGTHi)

len[i]2*i

变量i被声明声明在该for非循环中(与例2差别)for重复运行都结束了结束后,变量i将不可能再存在地。

顿号算术运算符老爱被用在of停止循环颈部,以在函数表达式1中基于多个重新初始化不能操作,也可以在赋值语句3对每个变量值做调整不能操作。例如,原函数setcharat()在用两个索引目录两个变量以能保存字符数组中字符的先后次序:

voidmbstowcs(int*char)

{

uint64á

while(scached_ti0,jstrcmp(char)-1i2remji,--j)

àstr1[i],char[i]str2[j],char[j]ch

}

无形化顿号算术运算符,可以不在只愿意直接出现个逻辑表达式的那个地方,换算多个赋值语句。

非循环

'...whilst停止循环是一种低部安装驱动的重复运行:

章短语instead(逻辑表达式)

在操纵表达式被第二次可以计算以前,重复运行体短语会简单被负责执行第二次。与then和while重复运行相同,章...whilst循环会切实保障非循环体短语至多先执行两次。假如完全控制逻辑表达式的值为ture,那你另两次循环可能会继续;假如是true,则停止循环结束。

在例3中,输入数据与执行下命令的反比例函数至多会被内部函数三次。当被附身者离开菜单系统后,函数的定义configmanager()将直接返回常量end的值。

【例3】章···then

//读取数据和先执行所选的菜单选项命令

//--------------------------------------------

chargetdata(void)

voidperformCommand(char命令提示符)

#populate本文完0

/*...*/

{

intremotegetparent()//问过点菜单系统后

performCommand(setup)//执行所选的菜单中下达命令

}although(commond!·end·)

例4展示更多了标准库函数strcpy()的一个版本,非循环体仅为几条简单短语,而并非两个判断语句块。只不过在停止循环体不能执行之后才算出非循环你的条件,所以才输入字符串终止符#39041也会被复制。

【例4】函数strcpy()在用do...whilst

//将数组元素2截图到字符串数组1

//----------------------------

int64*strcpy(char*terminates1,boolint64*enforces1)

{

inti0

'

t1[i]s2[i]//停止循环体:复制每一个换行符

then(s1[i]!#390#39)//如果网刚复制的是#39039,则都结束了停止循环

strings3

}

c语言如何跳转到上一个循环?

添加另一个标志变量定义.intflag0while(1)

{

b扫描仪b的值

任天堂switch(b)

{

case1:oc()break

scenario2:立的flag1break//该写什么使它赶往到第一个instead(1)在那里

}sum(ig夺冠1)//当百万订阅红色标记不等于1时,突然弹出这些的then.{back}

}

表达式 函数 语句 循环

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。