2016-10-20 18 views
0

私の質問は、1行のコードで2つのforループに関するものです。たとえば、2つのループfor 1行C++

vector < vector<int> > myArray; 

for (int i; i > n; i++) for (int j; j > m; j++) 
{ 
//Statements 
myArray[i][j]; 
} 

実際には2次元配列またはベクトルに使用されますが、実際の実際の例はどのように使用されますか?行と列を別々の行に表示するのは難しいためです。また、両方のループ条件が同じライン上にあるので、同時に変化するため、プロセス全体を制御することがより困難になります。

まもなく、これの実用的な目的は何ですか?

+0

私は野生でそのようにそれを見たことがないが、それは本当に事をフォーマットするだけのテキストです。 2番目の行を次の行に移動し、インデントします。今それは少し明確です。もし私がレビューで1行でそれを見たなら、私はそれを書き直して、それをより明確にするためにそれを送り返すだろう。 – John3136

答えて

3

短い答え:コードを読みにくくするという実用的な目的は一般的にはありません(1行に2つのループがあります)。それはあなたが使用しているかどうか、コンパイラの出力に機能的違いはありません:

for (int i; i > n; i++) for (int j; j > m; j++) 
{ 
    //Statements 
    myArray[i][j]; 
} 

または

for (int i; i > n; i++) 
{ 
    for (int j; j > m; j++) 
    { 
     //Statements 
     myArray[i][j]; 
    } 
} 

しかし、難読化コンテスト以外の、読みにくい方法でコードを書きます、保守性、可読性およびデバッグ性に悪い。上記の2番目のオプションは、読みやすく理解しやすく、デバッグが簡単です。

これをカバーする多くのスタイルガイドがあり、「良い」コードの例と特定の方法でコードを書くための推論があります。

は、いくつかのリンクのためにこの質問を見てください:programming style guide for C

+0

ありがとうございます。それは理にかなっている。私はあなたが与えた2番目の例のためにもっと上がっています。物を読みやすくします。 – BigClassic

0

1つの行に複数のforループを使用する目的はありません。

for (int i; i > n; i++) for (int j; j > m; j++) Statements 

は同等です:括弧を削除

for (int i; i > n; i++) { 
    for (int j; j > m; j++) { 
     Statements 
    } 
} 

だけのコードがどのように見えるか変更されます。結局それは問題ではない。場合によっては、コードをよりきれいに見せることができます。

+0

ありがとうございました。実際には今は理にかなっています。 – BigClassic

関連する問題