for文の応用テクニック
for文は、繰り返し処理を行うための非常に便利な構文です。
基本的な使い方に加えて、さまざまな応用テクニックを使うことで、より複雑な処理を行うことができます。
以下では、ネストしたfor文の使い方、数学的な計算の例、文字列の処理の例について説明します。
ネストしたfor文の使い方
ネストしたfor文とは、for文の中に別のfor文を記述することです。
これにより、複数のループを組み合わせることができます。
ネストしたfor文を使うことで、多次元配列の要素にアクセスしたり、行列の計算を行ったりすることができます。
以下は、2次元配列の要素を表示する例です。
#include <stdio.h>
int main() {
int array[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
上記のコードでは、2次元配列array
の要素を行ごとに表示しています。
外側のfor文で行を、内側のfor文で列を指定して要素にアクセスしています。
for文を使った数学的な計算の例
for文を使うことで、数学的な計算を簡単に行うことができます。
例えば、1から10までの整数の総和を求める場合、for文を使って以下のように計算することができます。
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
printf("総和: %d\n", sum);
return 0;
}
上記のコードでは、変数sum
を初期化し、for文の中で変数i
を1から10まで1ずつ増やしながら、それをsum
に加えています。
最終的な総和はsum
に格納され、表示されます。
for文を使った文字列の処理の例
for文を使うことで、文字列の処理を行うこともできます。
例えば、文字列の中に含まれる特定の文字の数を数える場合、for文を使って以下のように処理することができます。
#include <stdio.h>
int main() {
char str[] = "Hello, World!";
char target = 'l';
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == target) {
count++;
}
}
printf("%cの数: %d\n", target, count);
return 0;
}
上記のコードでは、文字列str
の中に含まれる文字target
の数を数えています。
for文の条件式では、文字列の終端を表すヌル文字('\0'
)が現れるまでループを繰り返します。
ループの中で、文字列の各文字とtarget
を比較し、一致する場合はcount
をインクリメントします。
最終的な数はcount
に格納され、表示されます。
以上が、for文の応用テクニックの一部です。
これらの例を参考にして、さまざまな処理を行うためにfor文を活用してみてください。