1

私はユニプロジェクト用にこの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 ループでのみ認識されます。

ありがとう

4

6 に答える 6

0

変数はネストされたループでのみ使用できます。

同じ変数を使用して2つの異なるループが必要な場合は、両方の前に宣言する必要があります

于 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ます。

でアクセスする場合awhile 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

はい、変数のスコープはループ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

ループが終了するforと、早期に抜け出さない限り、a==definedgroupsは true になります。

したがって、「同じ変数」を使用する意味はほとんどありません。新しい変数を作成し、それを に等しいとして開始することができますdefinedgroups。最適化するように指示されたすべてのコンパイラは、1 つの変数を別の変数に使用します。

実際、変数を再利用すると、コードのある部分から別の部分に不必要な状態が流出するため、避ける必要があります。新しい変数を使用してください。費用はかかりません (ループ インデックスなどへのポインターを取得した場合を除きます)。

実際の問題は、あなたが示したおもちゃの問題よりも複雑である可能性は十分にあります。やりたいことを示す、自己完結型の単純で完全なコード例を投稿することをお勧めします。

于 2012-12-05T18:45:01.663 に答える