C/C++学習 · 3 min read · Oct 11, 2025
C/C++を段階的に学ぶ - ページ5
05. 段階的C/C++ — Cプログラミング - ループ文
- 分岐文 - goto
- ループ文
for
while
do..while
1. 分岐文
goto
現在のプログラム内で制御ポインタをある場所から別の場所に転送します。
| | 構文:
goto 注: ラベル名はコロン(:)で定義され、32文字を超えてはいけません。
| | 例.
abc:
printf(“Hello”);
goto abc; |
/ 01. goto文を示すデモプログラム /
/ 19_goto.c /
#include
int main()
{
abc: / ラベル名 /
printf(“\nHello”);
goto abc; / 分岐文 /
return 0;
}
/ 07. 継続的な実行はキャリ変数と条件文で停止します /
/ 最後のプログラムとこのプログラムの違いを見つけ、すべての違いをメモしてください /
/ 20_goto.c /
#include
int main()
{
int i = 1;
abc:
printf(“\nHello”);
i ++;
if ( i<= 10 ) / この文に注意してください /
goto abc;
return 0;
}
2. ループ文
for
特定の回数だけステートメントブロックを実行する反復文です。
| | 構文:
for(<初期化> ; <条件> ; <ステップ値>)
{
<ステートメントブロック>
} |
| | 例.
for(I=1;I<=10; I++)
printf(“\n%d”,i); |
| | 例.
for(I=1, j = 0; I<10; I+=2, j+=2)
printf(“%d %d\n”, i, j); |
/ 08. メッセージを5回印刷する /
/ 21_for.c /
#include
int main()
{
int i;
for(i = 1; i <= 5; i++ )
printf(“\nHello”);
return 0;
}
/ 09. メッセージを5回までカウントして印刷する /
/ 22_hello.c /
#include
int main()
{
int i;
for(i = 1; i <= 5; i++ )
printf(“\nHello - %d”, i);
return 0;
}
/ 10. 1から10までの自然数を印刷する /
/ 23_nat.c /
#include
int main()
{
int i;
for(i = 1; i <= 10; i++ )
printf(“\n%d”, i); / メッセージを省略 /
return 0;
}
/ 11. 第二の乗法表を印刷する /
/ 注: 最後のプログラムと比較してください /
/ 24_table.c /
#include
int main()
{
int i;
for(i = 1; i <= 20; i++ )
printf(“\n%d 2 = %d”, i, i 2);
return 0;
}
/ 12. 指定された数の乗法表を印刷する /
/ 25_tablen.c /
#include
#include
int main()
{
int i, t; / 新しい変数’t’ /
clrscr();
printf(“どの表を印刷しますか :”); scanf(“%d”, &t);
for(i = 1; i <= 20; i++ )
printf(“\n%d %d = %d”, i, t, i t);
return 0;
}
/ 13. 指定された数の乗法表を印刷する /
/ 注: 最後のプログラムと比較してください /
/ 26_tablen.c /
#include
int main()
{
int i, t;
clrscr();
for(t = 1; t <= 20; t++) / もう一つのforループ /
for(i = 1; i <= 20; i++ )
printf(“\n%d %d = %d”, i, t, i t);
return 0;
}
/ 14. 三角形の形で数字を印刷する /
/ 注: 最後のプログラムと比較してください /
/ 27_tri.c /
#include
int main()
{
int i, j;
clrscr();
for( i = 1 ; i<= 5; i++ )
{
for( j = 1; j <= 5; j++ )
printf(“%4d”, j);
printf(“\n”);
}
return 0;
}
forループのさらなる例:
| | / 無限ループ /
for ( ; ; )
{
printf(“\nHello”);
} | / 1-5の数字を印刷 /
for ( i=1; i<=5; )
{
printf(“\n%d”, i++);
} | | | / 明示的なループブレーク/
for ( i=1; ; )
{
printf(“\n%d”, i++);
if ( i> 5 ) break;
} | int i = 1;
for ( ;i<=5 ; )
{
printf(“\n%d”, i++);
} |
while
与えられた条件が満たされるまでステートメントブロックを実行する反復文です。
do.. while
この反復文は、最初にステートメントブロックを実行し、その後条件の有効性を確認します。条件が真であれば再度ステートメントブロックを実行し、逆もまた然りです。
| | 構文:
while( < 条件 > )
{
<ステートメントブロック>;
} | 構文:
do
{
<ステートメントブロック>
} while(<条件>); |
例.
次の例は、1から10までの自然数を表示します。
| | int main()
{
int i=1;
while( i<=10)
{
printf(“\n%d”,i);
i++;
}
return 0;
} | int main()
{
int i=1;
do
{
printf(“\n%d”,i);
i++;
}while(i<=10);
return 0;
} | | | 最初に条件を確認し、次にブロックを実行します、したがって条件の初期値を持っている必要があります | 最初にブロックを実行し、次に条件を確認します、ステートメントブロック内で初期値を決定できます。 |
さらなる例
| | / 15. 1から5の数字を印刷する /
/ 注: これは参照プログラムです / / 28_while.c /
#include
int main()
{
int i;
i = 1; / 初期値は1 /
while( i<= 10 )
/ 最初はiが10以下です /
{
printf(“\n%d”, i);
i ++;
}
return 0;
} | / 16. 1から5の数字を印刷する /
/ 29_dowhile.c /
#include
int main()
{
int i;
i = 1; / 初期値は1 /
do
{
printf(“\n%d”, i);
i ++;
}while( i<=10 );
/ 二回目にiは10以下です /
return 0;
} | | | / 17. whileのデモ /
/ 注: 初期値が100の場合、出力は何でしたか?確認してください。 / / 30_demow.c /
#include
int main()
{
int i;
i = 1;
while( i<= 10 )
{
printf(“\n%d”, i);
i++;
}
return 0;
} | / 18. doのデモ /
/ 注: 初期値が100の場合、出力は何でしたか?確認してください。 /
/ 31_demod.c /
#include
int main()
{
int i;
i = 1;
do
{
printf(“\n%d”, i);
i++;
}while( i<= 10 );
return 0;
}
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。