2017-04-27 12 views
-2

forループが以下の条件でどのように処理されるかを知りたい。タイプミスのミスのため申し訳ありません2つの変数のforループ反復法は?

void main() 
{ 
    int i,j; 
    For(i=1,j=1;i<=5,j<=10,i++,j++) 
    { 
     printf("%d%d",i,j); 
    } 
} 

私は修正する(I = 1、J = 1; I < = 5、J < = 10; iの++、J ++)のために、ここで

私の構文の

答えこれは-1122334455667788991010

どのように可能ですか?私はループを5回だけ繰り返すので、それはどのように可能ですか? ループの実行方法を知りたいですか?

+0

質問をより明確にしてもらえますか? – Houbie

+4

これはコンパイルされません。 3番目のコンマはセミコロンでなければなりませんか? – dasblinkenlight

答えて

-1
#include <stdio.h> 

int main(int argc, char** args){ 
    for(int i = 0, j=0; i<10&&j<10; i++, j++){ 
     printf("%d, %d\n", i, j); 
    } 
} 

セミコロンは、forステートメントの用語を区別します。 (intializer; condition; action at end of loop)セクションの好きなことをすることができます。

+0

彼らがこれを投稿したとき、彼らの問題は 'のように見えました。私は正しい構文を貼り付けました。 – matt

3

これはコンパイルされません。forには;が1つしかありません。これは構文エラーです。

私はそれがこのように読んでくださいと仮定します。その後、

for(i=1, j=1; i<=5, j<=10; i++, j++) 

それは10

これはfor -loopの中段ので、条件に両方ijステップでしょうi<=5,j<=10はカンマ演算子の使用で、おそらくブール値(&&)が使用されます。

i<=5と評価され、その結果が破棄され、j<=10と評価され、その値が0でない限りループが実行されます。

+0

"true"はおそらくここでは "非ゼロ"よりも明瞭になります。 – Quentin

+1

@Quentin結果の型は 'int'であり、' true'は '_Bool'(または' bool')型であると人々は期待しているので、そうは思いません。 – unwind

関連する問題