【发布时间】:2016-07-14 18:08:11
【问题描述】:
我目前正在学习 C++,现在我被困在 while 语句上。 问题是我无法正确理解在 while 语句开始之前初始化变量或在 main 中全局初始化变量之间有什么区别。
下面的代码可能会更好地解释我的问题:
int main()
{
using namespace std;
int x = 1;
while (x <= 5)
{
int y = 1;
while (y <= x)
{
cout << y++ << " ";
}
cout << "\n";
++x;
}
return 0;
}
此代码输出为:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
但以下
int main()
{
using namespace std;
int x = 1;
int y = 1;
while (x <= 5)
{
//int y = 1;
while (y <= x)
{
cout << y++ << " ";
}
cout << "\n";
++x;
}
return 0;
}
产生:
1
2
3
4
5
好吧,这听起来可能很愚蠢,但我真的需要理解它。我已经经历了几个主题,但是变量初始化的地方并没有让我明白。如果有人能指出我正确的方向,那将不胜感激。 谢谢
【问题讨论】:
-
在第一个版本中,
y在while (x <= 5)循环的开始处具有1的值,在第二个版本中,在第二次迭代中,该值是最后的结果第一次迭代,依此类推。 -
在第二个程序中
y将其值从第一个外循环迭代保留到下一个。
标签: c++ loops variables while-loop statements