+=
++y
即乱桥
x
=
x
+
(++y),赋值号右边++y的意思是y自增姿陪扒1,迹昌再与x的值相加赋给左边的x
假如x=1,
y=2,那么x
=
1+(++2)
=
1+3=4
首先了解下优先级与结简洞合性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
(建议你逐步调试,很清晰)
如果x!=
0,
则谈游
!x
为
0,即假,如果x
==
0,则
!x
为
真。
while循环和
do-while
循环的区别在于,while是先检查是否复合条件再循环,而do-while循环则是在循环体尾检查是否符合条件,这就说明,do-while循环内的语句至少被执汪世行一次。
这好比下面的例子
do{
吃一个三明治
←←←←←
Statement
我饿吗?(饿,再吃一个三明治↑)(不饿,退出循环↓)
}while()
←←←←←←←←←
这就意味着,你至少得吃一个三明治。
如果使用while循环,则像下面这样
我饿吗?(饿,吃↓)(不饿↓)
while()
{
吃一个三明治
←
↓
statement}
←含陵销
这说明,你不一定吃一个三明治。
这就是while跟do-while的区别。。。=、=
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)