在书上看见为使x=0 有语句x=10;while(x--);x++;请问退出循环时x的值为何为-1 设有一下程序 int x=0 ,s=0; while(!x!...

int x=10; do x--; while(--x); printf("%d\n",x--); \u7b54\u6848\u4e3a0. \u6c42\u8be6\u89e3

\u53ea\u6709\u5f53\u8868\u8fbe\u5f0f--x\u503c\u4e3a0(\u5047)\u65f6,\u624d\u4f1a\u9000\u51fa\u5faa\u73af\u4f53,\u6240\u4ee5\u9000\u51fa\u5faa\u73af\u540ex\u503c\u4e3a0,\u53c8\u56e0\u4e3ax--\u7684\u503c\u4e3ax\u81ea\u51cf\u524d\u7684\u503c,\u6240\u4ee5\u8f93\u51fa0

\u8fd0\u884c\u7a0b\u5e8f\u6bb5\u540e\u8f93\u51fa1\u3002
while(!x!=0) \u7b49\u4ef7\u4e8e while ( (!x) != 0)\uff0c\u5219 s\u521d\u59cb\u5316\u503c\u4e3a0\uff0c\u6545\u6709 !x = 1\uff0c\u63a5\u7740 1 != 0 \uff0c\u663e\u7136\uff0c\u7ed3\u679c\u4e3a\u771f\u3002
\u6267\u884cwhile\u540e\u9762\u7684\u5faa\u73af\u8bed\u53e5 s+=++x\uff1b\uff08\u6ce8\u610f\uff0c++\u662f\u524d\u7f00\u7684\uff09\uff0c\u5373 s = s+(++x)[ s= 0+ 1=1]\uff0c\u5b8c\u6210\u540ex=1\uff0c\u518d\u6b21\u8fdb\u5165\u5faa\u73af\u5224\u65ad\uff0c\u6839\u636e\u4e0a\u9762\u7684\u5206\u6790\uff0c\u6b64\u65f6\u5faa\u73af\u6761\u4ef6\u4e3a\u5047\uff0c\u8df3\u51fa\u5faa\u73af\u3002
\u6240\u4ee5\uff0c\u8fd0\u884c\u7a0b\u5e8f\u6bb5\u540e\u8f93\u51fa1\u3002

\u6269\u5c55\u8d44\u6599\uff1a
while\u8bed\u53e5\u82e5\u4e00\u76f4\u6ee1\u8db3\u6761\u4ef6\uff0c\u5219\u4f1a\u4e0d\u65ad\u7684\u91cd\u590d\u4e0b\u53bb\u3002\u4f46\u6709\u65f6\uff0c\u9700\u8981\u505c\u6b62\u5faa\u73af\uff0c\u5219\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u4e09\u79cd\u65b9\u5f0f\uff1a
\u4e00\u3001\u5728while\u8bed\u53e5\u4e2d\u8bbe\u5b9a\u6761\u4ef6\u8bed\u53e5\uff0c\u6761\u4ef6\u4e0d\u6ee1\u8db3\uff0c\u5219\u5faa\u73af\u81ea\u52a8\u505c\u6b62\u3002
\u5982\uff1a\u53ea\u8f93\u51fa3\u7684\u500d\u6570\u7684\u5faa\u73af\uff1b\u53ef\u4ee5\u8bbe\u7f6e\u8303\u56f4\u4e3a\uff1a0\u523020\u3002
\u4e8c\u3001\u5728\u5faa\u73af\u7ed3\u6784\u4e2d\u52a0\u5165\u6d41\u7a0b\u63a7\u5236\u8bed\u53e5\uff0c\u53ef\u4ee5\u4f7f\u7528\u6237\u9000\u51fa\u5faa\u73af\u3002
1\u3001break\u6d41\u7a0b\u63a7\u5236\uff1a\u5f3a\u5236\u4e2d\u65ad\u8be5\u8fd0\u884c\u533a\u5185\u7684\u8bed\u53e5\uff0c\u8df3\u51fa\u8be5\u8fd0\u884c\u533a\uff0c\u7ee7\u7eed\u8fd0\u884c\u533a\u57df\u5916\u7684\u8bed\u53e5\u3002
2\u3001continue\u6d41\u7a0b\u63a7\u5236\uff1a\u4e5f\u662f\u4e2d\u65ad\u5faa\u73af\u5185\u7684\u8fd0\u884c\u64cd\u4f5c\uff0c\u5e76\u4e14\u4ece\u5934\u5f00\u59cb\u8fd0\u884c\u3002
\u4e09\u3001\u5229\u7528\u6807\u8bc6\u6765\u63a7\u5236while\u8bed\u53e5\u7684\u7ed3\u675f\u65f6\u95f4\u3002

x-- 是后减减(后缀减),退出表达式时 减1。
while(x--);当 表达式 值为0时(假时)停止循环。上面说了,后减减,退出时要减1。所以变 -1。

注意上述语句是while(x--); x++;而不是while(x--) x++;
一直执行while(x--);语句到条件不成立退出循环。
当循环执行到x=1时,x--表达式为1,执行完x--后x的值为0。while(1)会继续循环;
继续循环x=0, x--表达式的值为0,执行完x的值为-1。而while(x--)即while(0)则循环结束,所以跳出while循环后,x的值为-1。

扩展阅读:对人发癫语录 ... 花开好心情短句 ... 看见花开心情好的诗句 ... 花带来的美好心情诗句 ... 看见花草心情好的语句 ... 看到花开瞬间心情 ... 豪迈雄壮的话 是 言 语 ... 看见鱼的吉祥语句 ... 形容笑容很治愈的句子文案 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网