注册 登录
编程论坛 C++教室

还是for和while的问题

chris223 发布于 2007-10-08 03:46, 1025 次点击
//while 输出结果为:9 8 7 6 5 4 3 2 1 0
#include<iostream>
using namespace::std;
int main()
{
int val=10;
while(val>0)
{
- -val;
cout<<val<<' ';
}
cout<<endl;
return 0;



//for 输出结果为:10 9 8 7 6 5 4 3 2 1
#include<iostream>
using namespace::std;
int main()
{
for(int val=10;val>0;- -val)
cout<<val<<' ';
cout<<endl;
return 0;
}

这两种循环的条件是一样的,循环次数都是10次,可产生的结果却不一样,有谁知道这种差别在实际中有什么意义吗?
或者是说我们应该怎么利用这种差别?最好是举例说明:
请大家发表一下自己的看法
10 回复
#2
福尔摩斯2007-10-08 04:56
第一个程序先执行val>0

再执行--val

第二个程序先执行--val

再执行val>0

你只要把--val改成val--结果就一样了
#3
chris2232007-10-08 05:14

不对啊!我试过了,也不对

[此贴子已经被作者于2007-10-8 5:23:01编辑过]

#4
远去的列车2007-10-08 08:31

while(val>0)
{
- -val;
cout<<val<<' ';
}

改成
while(val>0)
{
cout<<val<<' ';
--val;
}

#5
succubus2007-10-08 12:26
omg
lz的程序真的通过编译了?
我想知道用的是什么编译器
真是神了
"--"写成"- -"了都行
#6
snipered2007-10-08 13:58

把2楼和4楼的合起来就会得到正确结果了

#7
孤魂居士2007-10-09 10:08
好多人问这个问题啊  斑竹  要多多解释啊
#8
jack_sqh2007-10-10 15:59
//while 输出结果为:9 8 7 6 5 4 3 2 1 0
#include<iostream>
using namespace::std;
int main()
{
int val=10;
while(val>0)
{
- -val;
cout<<val<<' ';
}
cout<<endl;
return 0;



//for 输出结果为:10 9 8 7 6 5 4 3 2 1
#include<iostream>
using namespace::std;
int main()
{
for(int val=10;val>0;- -val)
//while 输出结果为:9 8 7 6 5 4 3 2 1 0
#include<iostream>
using namespace::std;
int main()
{
int val=10;
while(val>0)
{
- -val;
cout<<val<<' ';
}
cout<<endl;
return 0;



//for 输出结果为:10 9 8 7 6 5 4 3 2 1
#include<iostream>
using namespace::std;
int main()
{
for(int val=10;val>0;- -val)
cout<<val<<' ';
cout<<endl;
return 0;
}
cout<<endl;
return 0;
}

在for循环中先执行//cout<<val<<' ',再--val;
#9
pm0310092007-10-10 17:30
int val=10;
while(val>0)
cout<<val--<<' ';
#10
chris2232007-10-11 18:16
经大家指点,我终于把循环结构和++  --的关系搞清楚了,谢谢大家
#11
windcloud2007-10-11 21:42

貌似四楼讲的有点道理,这里把--放前面放后面根本就没区别。
#include <iostream>
using namespace::std;
int main()
{
for (int val = 10; val > 0; --val) // --放前面放后面没区别
cout << val << ' ';
cout << endl;
return 0;
}

#include <iostream>
using namespace::std;
int main()
{
int val = 10;
while (val > 0)
{
val--;
cout << val << ' ';
}
cout << endl;
return 0;
}

1