社区
C语言
帖子详情
do while()的问题
ppper2022
2005-10-28 10:58:29
main()
{
int x=2;
do
{
int x=1;
x=!x;
printf("%d,",x);
}
while(--x);
}
最后输出是什么结果?为什么?两问都要答,答对,才有分哦。:P
...全文
127
10
打赏
收藏
do while()的问题
main() { int x=2; do { int x=1; x=!x; printf("%d,",x); } while(--x); } 最后输出是什么结果?为什么?两问都要答,答对,才有分哦。:P
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ppper2022
2005-10-28
打赏
举报
回复
晕S,学得也忘记是差不多了。结贴了。
ppper2022
2005-10-28
打赏
举报
回复
megaboy(飞天御剑流之杀神一刀斩) ( ) 信誉:100 2005-10-28 11:10:00 得分: 0
do循环里面的x覆盖了外部定义,这个x运行完do的复合语句就被抛弃了,跟main中的x无关,因此打印两次0后,main中的x成为0,循环结束。
为什么呢?当第一次do的时候,X的值不是已经是0了?再执行--x,不是-1么?
这里又没有全局变量,局部变量,这怎么解释来着?有没有一个规则参考?
firstway
2005-10-28
打赏
举报
回复
循环外:因为int x=2;所以while(--x);循环两次,这里X先自减,再判断是否为0,所以循环2次。
循环里面:因为int x=1;x=!x;(非1就是0 啦)所以打印x结果始终是0。
个人认为循环里外两个X其实不是指向同一东西。
megaboy
2005-10-28
打赏
举报
回复
main中的x跟do复合语句中的x作用域不同,对于do复合语句中的x,这叫内部定义覆盖了外部定义。
这是基础中的基础了,先看看书。
wxyeeis
2005-10-28
打赏
举报
回复
为什么x=0时x=!x还是0啊?
megaboy
2005-10-28
打赏
举报
回复
do循环里面的x覆盖了外部定义,这个x运行完do的复合语句就被抛弃了,跟main中的x无关,因此打印两次0后,main中的x成为0,循环结束。
ppper2022
2005-10-28
打赏
举报
回复
为什么会输出两个0呢?do内会执行两次?
firstway
2005-10-28
打赏
举报
回复
结果为:0,0,
因为int x=2;所以while(--x);喜欢两次
循环里面:因为int x=1;x=!x;所以打印x结果始终是0。
majianan
2005-10-28
打赏
举报
回复
循环两次,输出两个0
int x = 1;
!x的值为0
majianan
2005-10-28
打赏
举报
回复
选换两次,输出两个0
int x = 1;
!x的值为0
while及do while语句
编写程序时,许多
问题
都要用到循环控制。循环结构也是结构化程序设计的基本结构之一,因此熟练地掌握循环结构是程序设计最基本的要求。While循环、do while循环、for循环语句,3种循环语句在一般情况下可以相互转换 While 及dowhile语句 While语句和do while语句都是C语言中循环结构的一种实现方式。While语句实现当型循环结构;do while语句较while语句在执行和...
java do while 循环语句_Java do while循环语句用法
首页>基础教程>循环条件语句>循环语句whileJava do while循环语句用法do-while循环,先执行一次,然后在判断,如果条件成立,在循环执行,如果不成立,继续往下执行语法do {statement(s)} while (expression);布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。如果布尔表达式的值为 true,则语句块一...
c语言do while什么意思,C语言中do while语句的用法是什么?
C语言中“do while”语句用于语句的循环判断;语法为:“do {代码语句} while(表达式);”。它与while循环的不同在于:“do while”先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。do-while语句的一般形式为:do{代码语句}while(表达式);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真...
while与dowhile的区别
不论你是学java还是c,其中都会有一个while循环和dowhile循环,那么两者有什么区别呢,小编来给你解说下 一是代码的差距 while: while(循环条件){ 循环操作 } dowhile: do{ 循环操作 }while(循环条件); 二是他们的执行顺序不同 while是先判断,若为真则执行循环,若为假则不循环; dowhille是无论为真还是假,先执行一遍代码(循环操作),然后再进行判断是否为真或者是否为假,若为真,则继续执行循环; ...
matlab do while,Do While Loop
C Constructnum_iter = 1;do {flag = func();num_iter++;}while (flag && num_iter <= 100)Modeling Pattern for Do While Loop: While Iterator Subsystem blockOne method for creating a do while loo...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章