循环语句是怎么结束的 c语言有哪几种循环结构,写出循环执行过程?
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}
}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。