C语言题x=5;do{ y=x--;if(!y){printf("*");continue;}……是死循环 为什么 x=3;do{y=x--;if(!y) { printf(“...

x=3; do{y=x--; if(!y) {printf("*"); continue;}printf("#");}while(1<=x<=2);\u662f\u4e0d\u662f\u6b7b\u5faa\u73af

\u8fd9\u4e0d\u662f\u6b7b\u5faa\u73af\uff0c\u4f46\u662fwhile(1<=x<=2);\u8fd9\u4e2a\u8868\u8fbe\u4e0d\u5bf9\uff0c\u5e94\u8be5\u662fwhile(1<=x && x<=2);
\u8fd8\u5728\uff0c\u8fd9\u4e2a\u7a0b\u5e8f\u4e0d\u4f1a\u8f93\u51fa"*"\uff0c\u56e0\u4e3a\u5f53y\u7684\u503c\u4e3a1\u540e\uff0cx\u7684\u503c\u5c31\u81ea\u51cf\u4e3a0\uff0c\u4e0b\u4e00\u6b21\u7684\u5faa\u73af\u5c31\u4e0d\u4f1a\u7ee7\u7eed\u3002

1<=x<=2\u4e0d\u5408\u6cd5

while(3<=x<=4)
这个判断是
3<=x // 结果是true或者false
然后 true或者false <= 4 为恒真
所以循环不会结束。
即 3<=x<=4是(3<=x) <= 4
这跟数学上的 3<=x<=4不一样。

把continue改为break试试。continue是结束本次循环,进行下一次循环,但是y没有改变,一直是5,只能一直循环。

3<=x<=4 改 3<=x&&x<=4

扩展阅读:求解方程计算器 ... x+y=35 ... c++编程 ... c#制作计算器 ... 扫一扫题目出答案 ... c语言y y+x是什么意思 ... c语言a* ... c语言x y x x+y z ... c#简易计算器代码 ...

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