为什么下面这段代码没有返回像... 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 ++
由于
答案 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后的分号。分号后面的分号表示循环没有正文,因为分号是任何语句的结尾。