编程新手求指教。
我编了一个输出10-0的自然数递减程序,但是我发现一个问题当我的程序如下:#include<iostream>
int main()
{
int val=10;
while(val>0){
std::cout<<val<<"\t";
--val;}
system("PAUSE");
return 0;
}
输出结果为:10 9 8 7 6 5 4 3 2 1 0
但是当我写成这样时:
#include<iostream>
int main()
{
int val=10;
while(val>=0){
std::cout<<val<<"\t";
--val;}
system("PAUSE");
return 0;
}
输出结果为:10 9 8...0 -1
请问为什么会这样呢,while条件不是当大于或等于0时就结束了吗,怎么还会出现-1。
当我用for语句时,条件设定为(int val=10;val>=0;--val)输出10-0的递减,当(int val=10;val>0;--val)输出的是10-1的递减。
这样的话for 语句跟while 语句的测定条件一样但输出结果却不同。感到很困惑。
[ 本帖最后由 DirtyAss 于 2011-11-25 18:57 编辑 ]