Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語の奇数ループ(オッドループ)とは?意味と使い方を解説

C言語では、一連の処理を繰り返し実行するために制御文(ループ文)を使用します。主な繰り返し構造は以下の3種類です。

  • forループ
  • whileループ
  • do-whileループ

forループwhileループでは、条件式によって「ループを何回繰り返すか」が決まります。

forループの例

for (k = 1; k<=5; k++)

この場合、変数kが5以下である限りループは繰り返され、kが5より大きくなった時点で制御がループの外へ抜けます。つまり、このforループの条件式は「ループが5回実行される」ことを指定しています。

サンプルプログラム

以下はforループを使用したC言語プログラムです。

main( ){
    int k;
    for (k = 1; k<=5; k++){
        printf ("%d",k);
    }
}

実行結果

上記のプログラムを実行すると、次の出力が得られます。

1 2 3 4 5

whileループの例

while (k<=5)

こちらも同様に、kが5以下である間はループが継続し、kが5を超えるとループから抜けます。つまり、whileループの条件式も「ループの実行回数」を指定する役割を持っています。

サンプルプログラム

以下はwhileループを使用したC言語プログラムです。

main( ){
    int k;
    k = 1;
    while (k<=5){
        printf ("%d",k);
        k++;
    }
}

実行結果

上記のプログラムを実行すると、次の出力が得られます。

1 2 3 4 5

奇数ループ(オッドループ)とは

通常のループでは実行回数があらかじめ決まっていますが、実行回数が事前に分からない場合もあります。このようなときに活用されるのが奇数ループ(オッドループ)という考え方です。奇数ループを使えば、ユーザーの入力などの条件に応じて、必要な回数だけ柔軟に繰り返し処理を行えます。forループ・whileループ・do-whileループのいずれでも実装可能です。

サンプルプログラム

以下は奇数ループを使用したC言語プログラムの例です。ユーザーが入力した数値の偶奇を判定し、「1」を入力すると繰り返し、「0」を入力するとループを終了します。

#include<stdio.h>
int main(){
    int number;
    number=1;
    while(number==1) // 実行回数が不明な奇数ループ
    {
        printf("enter a number:\n");
        scanf("%d",&number);
        if((number%2)==0)
            printf("number is even\n");
        else
            printf("number is odd\n");
        printf("do you want to test any number\n");
        printf("if yes then press '1'\n"); // 1を押すと再度ループ実行
        printf("else press '0'\n"); // 0を押すとループ終了
        scanf("%d",&number);
    }
    return 0;
}

実行結果

上記のプログラムを実行すると、次のように動作します。

enter a number:
3
number is odd
do you want to test any number
if yes then press '1'
else press '0'
1
enter a number:
4
number is even
do you want to test any number
if yes then press '1'
else press '0'
1
enter a number:
9
number is odd
do you want to test any number
if yes then press '1'
else press '0'
0

このように奇数ループを利用することで、実行回数が不定の処理でも、ユーザーの判断に応じて柔軟に繰り返し制御を行うことができます。

  1. ネットワークのインターフェースとサービスとは?基本概念と種類をわかりやすく解説

    ネットワークサービスとは 一般的にネットワークサービスとは、アプリケーション層以上で動作し、コンピュータネットワーク上で利用されるアプリケーションのことを指します。 ネットワークサービスは、データの保存(ストレージ)、操作(処理)、提示(プレゼンテーション)、通信といった機能を提供します。実装方式としては、クライアント・サーバ型アーキテクチャ、またはピアツーピア(P2P)型アーキテクチャが採用されます。 サービスインターフェースとは サービスインターフェースは、SOA(Service-Oriented Architecture:サービス指向アーキテクチャ)を実現するための仕組みです。これによ

  2. C言語における静的メモリ割り当てとは?仕組みとサンプルコードで徹底解説

    C言語でプログラムが使用するメモリは、大きく分けて「静的メモリ割り当て」と「動的メモリ割り当て」の2つの方法で確保されます。 静的メモリ割り当て(Static Memory Allocation)とは 静的メモリ割り当てとは、変数のサイズがプログラムの実行前に決定され、固定サイズの領域として割り当てられる方式です。一度確保されたメモリは、明示的に解放することはできません。プログラム内で宣言された変数に対して、あらかじめメモリが割り当てられます。 静的メモリ割り当ての主な特徴 アドレス演算子「&」を使って変数のアドレスを取得し、ポインタに代入することができます。 メモリはコンパイル時