您的位置:广东在线游戏网 > 游戏资讯 > 下面代码的C语言中while(x--)是什么意思

下面代码的C语言中while(x--)是什么意思

作者:广东在线游戏网日期:

返回目录:游戏资讯


while(x,x--)
这个语句是多余的。
它等价于
while(x--)
意思就是先取x的值判断,只要x的值不等于0,(判断结束后x的值减1)就进入循环,最后一次循环体中x的值是0,退出循环时,x的值是-1。

首先了解下优先级与结合性
1.--为自减运算符,第二优先级,自右至左
2.x--这个表达式:先使用x的值,接着x=x-1;
整个表达式的值为x

while(x--)
{
循环体
}
首先
①判断x--这个表达式的值是否为zhidao0(即x的值),如果为0,不执行循环体
但仍然执行x=x-1;
例如:
int x=0; 则不执行循环体,x最终值为-1
②如果x的初值不为0,判断x--这个表达式的值是否为0,(不论是否为0)x=x-1,
如果x--表达式的值不为0,在执行循环体.(真绕...看例子)
例如:
int x=3;
while(x--)
{
printf("while\n");
}

printf("%d\n",x);
①3-->不为0-->x=x-1-->x=2
执行循环体 while
②2-->不为0-->x=x-1-->x=1
同上
③1-->不为0-->x=x-1-->x=0
同上
④注意 此时x=0,将不再执行循环体,但x=x-1;-->x=-1
(建议你逐步调试,很清晰)

while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。

!是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。

while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。

扩展资e5a48de588b67a686964616f339料:

1、c语言语法结构

for循环

for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:

for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)

表达式

表达式1为初值表达式,用于在循环开始前为循环变量赋初值。

表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。

表达式3为循环控制变量修改表达式,它使for循环趋向结束。

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。

先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。

for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。

do

do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。

while

while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件

以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

2、c语言特点

高级语言。它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 

结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 

代码级别的跨平台。由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

使用指针。可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 

参考链接:c语言_百度百科

首先了解下优先级与结合性
1.--为自减运算符,第二优先级,自右至左
2.x--这个表达式:先使用x的值,接着x=x-1;
整个表达式的值为x

while(x--)
{
循环体
}
首先
①判断x--这个表达式的值是否为0(即x的值),如果为0,不执行循环体
但仍然执行x=x-1;
例如:
int x=0; 则不执行循环体,x最终值为-1
②如果x的初值不为0,判断x--这个表达式的值是否为0,(不论是否为0)x=x-1,
如果x--表达式的值不为0,在执行循环体.(真绕...看例子)
例如:
int x=3;
while(x--)
{
printf("while\n");
}

printf("%d\n",x);
①3-->不为0-->x=x-1-->x=2
执行循环体 while
②2-->不为0-->x=x-1-->x=1
同上
③1-->不为0-->x=x-1-->x=0
同上
④注意 此时x=0,将不再执行循环体,但x=x-1;-->x=-1
(建议你逐步调试,很清晰)

相关阅读

  • 下面代码的C语言中while(x--)是什么意思

  • 广东在线游戏网游戏资讯
  • while(x,x--)这个语句是多余的。百它等价于度while(x--)意思就是先取x的值判断,只要x的值不等于0,(判问断结束后答x的值减1)就进入循环,最专后一次循环体中x的值是0,退出循属环
  • while(!(--x));在c语言中是什么意思?

  • 广东在线游戏网游戏资讯
  • !(--x)在c语言中的意思是:对变量x先进行自减,再对变量x的值取逻辑非zhidao,如果x为0,表达式为真,非0表达式为假。" !0" 这个逻辑表达式的值为1(判断的这个数为0,成立,则其表达式的
关键词不能为空

标签导航

魔兽世界采药300去哪学? 魔兽世界采药75去哪里采? 魔兽世界部落草药学230去哪采药?哪的草药多? 我在WOW里草药学75了,去哪里采药比较合适? 去老挝金三角在那个站买票吗 长春到三角龙湾有多少公里? 从万象到金三角多远?用什么交通工具?多久? 老挝金三角地区适合旅游吗? c语言while(x x--)什么意思啊? C语言中while(!(--x))什么意思 while(!(--x));在c语言中是什么意思? 下面代码的C语言中while(x--)是什么意思 希利苏斯稀有蝎子托克斯刷新位置 魔兽世界诅咒之地的稀有野猪格特郎多长时间刷新一次?再哪刷? 魔兽世界诅咒之地的银英蝎子坐标多少 诅咒之地的稀有蝎子还在吗? 奎屯市2016总人数 奎屯市有几个区 新疆奎屯市0公里处在哪 新疆奎屯市地图 魔兽世界7.0军团再临搏击俱乐部在哪 wow搏击俱乐部怎么进? 魔兽世界搏击俱乐部怎么玩 wow联盟搏击俱乐部在哪 口袋妖怪复刻捷克罗姆带什么道具 口袋妖怪漆黑的魅影捷克罗姆有什么技能最好带什么东西好 口袋妖怪黑白中除了雷希拉姆和捷克罗姆,还有什么神兽比较好抓到... 口袋妖怪黑白求雷希拉姆,捷克罗姆,奎雷姆,和剩下所有神兽配招... 求魔兽世界巫妖王版本猎人毕业装备和出处? 魔兽世界猎人80级毕业装备及掉落地点 所有装备!!!!!!! 魔兽80级LR毕业装备都有什么 WOW LR 毕业装备是哪些? LOL婕拉为什么被用来打辅助 理性讨论一下,打婕拉用什么辅助好点 婕拉才是辅助一姐 S6最火五大辅助还有谁 婕拉中单怎么对线石头人 wii模拟器怎么存档 wii模拟器怎么存档?wii模拟器存档位置在哪 wii模拟器怎么读取即时存档 wii模拟器用即时存档后游戏存档丢失? 用大力马线编织撒网几号线醉好编1指半网眼 0.2大力马 相当于普通的几号线 大力马8编1号线与4编的1号线一样粗吗 大力马 主线1.0 子线0.8 6号伊势尼 竹竿 能钓多大的... win10从设置里有更新与安全点进去没有恢复 win10更新和安全里面找不到重置此电脑 windows10更新和安全里没有Windows更新???? 为什么我的Win10【更新和安全】中缺失【更新状态】和【更新... 猎人维修大师怎么帮人远程刷机? 猎人维修大师怎样刷机 OPPO r r9plus怎么解锁 猎人维修大师怎么Oppo r7 when和while的区别是什么?