1

我的 uni 项目有这个 c++ 代码...

for (int a=0; a<definedgroups; a++)
{
    cout << "Enter Lower number for group " << a << ": "; 
    cin >> User_Groups [a] [0] ;

}

现在我想声明另一个显示数字的循环

我可以使用第一个变量中的 A 并说...

while (a>0)
{
displays code, have written yet
}

还是仅在第一个 for 循环中识别出“a”。

谢谢

4

6 回答 6

0

是的,变量的范围a仅限于for循环体。如果您想重用该变量/稍后使用它,您可以在for循环之前声明它:

int a=0;
for (; a<definedgroups; a++)
{
  cout << "Enter Lower number for group " << a << ": "; 
  cin >> User_Groups [a] [0] ;
}
while(a > 0)
{
...
}
于 2012-12-05T18:35:09.253 回答
0

是在第一个循环的a范围内声明的,所以是的,它只在那里可用。要重用它,您可以在外部声明它:

int a;
for (a=0; a<definedgroups; a++)
{
    cout << "Enter Lower number for group " << a << ": "; 
    cin >> User_Groups [a] [0] ;
}
于 2012-12-05T18:36:40.410 回答
0

该变量只能在嵌套循环中使用。

如果你想要 2 个不同的循环使用相同的 var,你应该在它们之前声明它

于 2012-12-05T18:37:23.873 回答
0

“a”仅在第一个 for 循环的范围内。

做你想做的事:

int a;
for(a = 0 ; ...)
{
  ...
}

while(a > 0) ...
于 2012-12-05T18:37:25.290 回答
0

变量a范围仅与for loop.

如果要在 中访问a,则while loop需要将其分配给两个循环之外的全局变量。

假设您要访问 的每个不同值a,那么您需要将其存储在一个数组中,这实际上没有任何意义,因为您可以创建 的递增顺序ints

但是,如果那是您想要做的,那么这就是我要做的,因为 piokuc 已经回答了。

int [] global_a;
for (int a=0; a<definedgroups; a++)
{
  cout << "Enter Lower number for group " << a << ": "; 
  cin >> User_Groups [a] [0] ;
  gloabl_a[a] = a;
}

for (int i=0; i<global_a.size; i++){
   while(a > 0)
   {
   ...
   }
}
于 2012-12-05T18:38:35.457 回答
0

for循环结束时,除非你提前爆发,否则a==definedgroups为真。

所以使用“相同的变量”没有什么意义。您可以创建一个新变量并将其启动为等于definedgroups,并且每个编译器在被告知进行优化时都会将一个变量用于另一个变量。

事实上,重用变量会将不必要的状态从代码的一部分转移到另一部分,您应该避免这种情况。使用一个新变量,它不会花费你任何东西(除非你离开并把指针指向你的循环索引或类似的东西)

您的实际问题很可能比您演示的玩具更复杂。您可能想要发布一个自包含、简单、完整的代码示例来演示您想要做什么。

于 2012-12-05T18:45:01.663 回答