2017-02-23 4 views
-2

だが、私はそのようなコードがあるとしましょう:'for'では 'continue'はどのように動作しますか?forは別の 'for'ですか?

for (...;...;...){ 
    for (...;...;...){ 
      if (...){ 
       ... 
       continue; 
       ... 
      } 
     } 
} 

(「...」コードのいくつかの作品で、実際に何が問題ではありません)

プログラムは 『継続』になると、それは外側または内側に戻ってくるのですか?

+1

inner forループ。 –

答えて

1

これはC標準(6.8.6.2ザ文を続ける)

2 Aによれば、以下のよう

for (...;...;...){ 
    for (...;...;...){ 
      if (...){ 
       ... 
       goto continue; 
       ... 
      } 
     continue:; 
     } 
} 

ように見える文がループの継続部分へのジャンプを引き起こし続けますの最小の囲み反復記述;つまり、ループ本体の最後の に移動します。図示し続ける文が(その場合、それはそのステートメント内で解釈される)囲まれた反復 ステートメントでない限り、より正確には、文の各

while (/* ... */) 
{ 
    /* ... */ 
    continue; 
    /* ... */ 
    contin: ; 
} 

do 
{ 
    /* ... */ 
    continue; 
    /* ... */ 
    contin: ; 
} while (/* ... */); 

for (/* ... */) 
{ 
    /* ... */ 
    continue; 
    /* ... */ 
    contin: ; 
} 

において、 ジャンプCONTINと等価です;

+0

もう1つ 'for'があれば、最も外側のものに行くでしょうか?それとも、「続行」と書いたところでプログラムが継続することを意味しましたか? –

+0

@AniaZdanowicz最新の投稿をご覧ください。 –

+0

さて、ありがとう! –

2

内側のもの。それは常に最奥のループです。多くの言語が、2つのレベルを飛び越えて外側に進むためには、「ブレーク2」/「コンティニュー2」のような方法を提供します。

+0

それでは、あなたは 'while'または 'for'のいずれかのトップに行く、それはあなたに「最も近い」、「最も内側に」あることができますか? –

+1

あなたに最も近い、そうです。あなたは "continue"からあなたのキャレットを上に向けることができます。最初のループはジャンプする場所です。 – dkellner

+0

ありがとうございます! –

関連する問題