【问题标题】:variable from a for loop into another loop从 for 循环到另一个循环的变量
【发布时间】:2012-12-05 18:31:21
【问题描述】:
我的 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
}
或者是“a”只在第一个 for 循环中被识别。
谢谢
【问题讨论】:
标签:
c++
variables
for-loop
while-loop
【解决方案1】:
变量a 范围仅与for loop.
如果要访问while loop 中的a,则需要将其分配给两个循环之外的全局变量。
假设您要访问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)
{
...
}
}
【解决方案2】:
是的,变量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)
{
...
}
【解决方案3】:
a 是在第一个循环的范围内声明的,所以是的,它只在那里可用。要重用它,你可以在外面声明它:
int a;
for (a=0; a<definedgroups; a++)
{
cout << "Enter Lower number for group " << a << ": ";
cin >> User_Groups [a] [0] ;
}
【解决方案4】:
该变量只能在嵌套循环中使用。
如果你想要 2 个不同的循环使用同一个 var,你应该在它们之前声明它
【解决方案5】:
“a”只在第一个 for 循环的范围内。
做你想做的事:
int a;
for(a = 0 ; ...)
{
...
}
while(a > 0) ...
【解决方案6】:
当for 循环结束时,除非你提前爆发,否则a == definedgroups 为真。
所以使用“同一个变量”没有什么意义。您可以创建一个新变量并将其启动为等于definedgroups,并且每个编译器在被告知进行优化时都会将一个变量用于另一个变量。
事实上,重用变量会将不必要的状态从代码的一部分转移到另一部分,您应该避免这种情况。使用一个新变量,它不会花费你任何东西(除非你离开并把指针指向你的循环索引或类似的东西)
您的实际问题很可能比您演示的玩具更复杂。您可能想发布一个自包含、简单、完整的代码示例来演示您想要做什么。