为什么(cont = 100; cont> = 20; cont- = 10)只返回一个值而不是一个系列

时间:2013-11-02 18:53:22

标签: c++ visual-c++ c++11

为什么下面这段代码没有返回像... 100 90 80 70 60 50 40 30 20这样的系列,它会返回数字10?

using namespace std;
int main()
{
 int cont;
 for(cont=100; cont>=20; cont-=10);
 {
   cout<< " "<<cont;
 }
 cout<< "\n";
 system("pause");
}

抱歉我的愚蠢问题..我现在开始学习c ++

由于

4 个答案:

答案 0 :(得分:6)

for(cont=100; cont>=20; cont-=10);
                                 ↑

删除此;

您的代码与:

相同
for(cont=100; cont>=20; cont-=10) { }
{
   cout<< " "<<cont;
}

循环将继续从count减去10,直到count>=20不满足为止,然后它将打印cont的值,即10。

提示:使用调试器,这是你最好的朋友。

答案 1 :(得分:4)

你的错误已经被指出(在你的;循环之后流浪for ();,但根本原因有点微妙:

变量应在最严格的范围可能的中声明。

如果我们遵守本指南,我们会得到:

int main()
{
    for(int cont=100; cont>=20; cont-=10);
    {
        std::cout << " " << cont; // COMPILER ERROR: unknown "cont"
    }
    std::cout<< "\n";
}

并且编译时错误总是跟踪运行时错误的成本。

答案 2 :(得分:3)

括号后面的分号不属于那里;它被解释为循环的整个主体。

答案 3 :(得分:1)

因为封闭的parantheses后的分号。分号后面的分号表示循环没有正文,因为分号是任何语句的结尾。