怎样得出这个结果的?

wohuleyou 2008-10-19 12:12:48
#include <iostream>
using namespace std;
void main()
{
int y=10;
do{y--;}shile(--y);
cout<<y--<<endl;
}

我想问一下是怎样得到 0 这个答案的?
...全文
57 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wohuleyou 2008-10-20
  • 打赏
  • 举报
回复
我明白了,多谢楼上的各位仁兄了。
mingpaier 2008-10-19
  • 打赏
  • 举报
回复
-1
kkndciapp 2008-10-19
  • 打赏
  • 举报
回复
y = -1
fox000002 2008-10-19
  • 打赏
  • 举报
回复
只需考虑

int y = 0;

cout << y-- << endl;


y-- 是先使用一次初始值,第二次出现时再减1,
++y 是先减1,然后再使用

也就是 cout 输出时 y 还是 0

之后的话 y = -1



liecs 2008-10-19
  • 打赏
  • 举报
回复


#include <iostream>
using namespace std;
void main()
{
int y=10;
do{
y--;
}
while(--y); // 这里是结束的判断条件,--y是将y=y-1后再做while的循环判断。因为y=10;所以y可以运行到0,并且跳出
// 如果y的初始化为奇数的话,那么y就可能会小于0,不断的循环下去了
cout < <y-- < <endl; //这里的y是输出结果后再减一的。
// 到这里y = -1;
}
wwxxdd1982 2008-10-19
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
void main()
{
int y=10;
do{
y -= 1;
--y;
}
while(y);
cout < <y-- < <endl;
}
这么看容易些
因为y是偶数且大于等于2,
否则就不会结束while了
engine668 2008-10-19
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
void main()
{
int y=10;
do{
y--;
}
while(--y);
cout<<y--<<endl;
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧