C言語

-C言語- 繰り返し処理(ループ文)の基本

繰り返し処理とは

今回はC言語における「繰り返し処理(ループ)」について解説します。
そもそも繰り返し処理とはなんなのかということをまずは見ていきましょう。

まず、どの様な時にこの繰り返し処理を使うのか。
例えば以前紹介した、配列変数を扱うときです。

#include <stdio.h>
int main()
{
    int array[5];

    array[0] = 10;
    array[1] = 20;
    array[2] = 30;
    array[3] = 40;
    array[4] = 50;

    printf("%d, %d, %d, %d, %d n", array[0], array[1], array[2], array[3], array[4]);
}

このように配列を代入するときに、一つずつ配列の要素を指定して代入していますが、これだとあまりに煩雑ですよね。
*配列について復習したい方はこの記事を参考にしてください。

http://itthestudy.com/c%E8%A8%80%E8%AA%9E%E5%85%A5%E9%96%80-%E9%85%8D%E5%88%97%E3%81%A8%E3%81%AF%EF%BC%9F/

そこで、今回勉強する繰り返し処理(ループ)が便利なんです。
実際に上のサンプルコードと同じ処理を繰り返し処理(ループ)を使って簡単にしてみましょう。

#include <stdio.h>
int main()
{
    int array[5];
    int number = 10;
    /*
    ** ここの部分をループ処理に変えてみます。
    array[0] = 10;
    array[1] = 20;
    array[2] = 30;
    array[3] = 40;
    array[4] = 50;
    */
    for(int i = 0; i < 5; i++)
    {
        array[i] = number;
        number = number + 10;
    }
    printf("%d, %d, %d, %d, %d n", array[0], array[1], array[2], array[3], array[4]);
}

このサンプルコードのように前までは配列の要素を指定して、
一つずつ代入していたものを"for文"という繰り返し処理(ループ文)で簡単にしています。

簡単に説明すると、繰り返し処理をするのに"for"関数を今回は使いました。

  • 第一引数には、ループする回数の基準となる値の変数の宣言をしています。
  • 第二引数では、ループする回数を決めており、
  • 第三引数で、カッコ内の処理が終わった時にループの基準となる変数のインクリメント(カウントアップ)をしています。
IT博士
IT博士

つまり、ループの回数は基準値を0として、ループの回数(変数 "i")が5よりも下の間、処理を繰り返しています。

そしてその変数"i"を使うことで配列の要素を指定して値を代入しています。

すごい。今まで5行も6行も書いていたコードがかなりすっきりしました!

 

繰り返し処理(ループ)の種類

先ほどは、一例として"for()"関数を使って紹介しましたが、他にもループの仕方があるので紹介していきます。

大きく分けて3種類のループ分があります。

  • for文
  • While文
  • do文

この3つの特徴や使い方を順番に見ていきましょう。

"for"

for文は、ループを開始する前に実行される「初期化式」というものと,繰り返しの条件を指定する「条件式」、そして繰り返し部分の最後に実行され、その次の繰り返しをするための準備をする「後始末の式」で構成されるものを、まとめて指示する文です。

for (/* 初期化式 */; /* 条件式 */; /* 後始末の式 */)
{
    /* 条件式が成立している間は実行される処理 */
}

基本的にはこんな形で構成されます。

for文の無限ループの書き方

for文での無限ループの書き方についてちょっとだけ説明します。
無限ループとは「無限に回り続ける」ということです。

for (;;)
{
    /* 無限に繰り返し続けられる処理 */
}

このように、条件式などを省略することで無限にループを続けることができます。

"while"

while文は条件式を指定して、その条件式が成立している間ループし続けます。

while (/* 条件式 */)
{
    /* 条件式が成立している間実行される処理 */
}

このように、条件式を定義してやってその条件式が成立(真[true])の間ループし続けます。

while文での無限ループの書き方

while (1 /* もしくは "true" */)
{
    /* 無限に繰り返し続けられる処理 */
}

while文の時はこのように条件式を"0"か"true"を指定することで常に条件式は成立していることになり、無限にループすることが可能です。

"do"

このdo文は必ずdoの後にwhileを記述します。

do
{
    /* 条件式が成立している間実行される処理 */
}while(/* 条件式 */)

ん?これwhile文と何が違うのですか?

IT博士
IT博士

良いところに目を付けましたね。
今の話を聞いただけでは何が違うのかわかりませんよね。
そのあたり詳しく見ていきましょう!

do文とwhile文の違い

構文だけ見ると"do"文と"while"文はほぼ同じにみえますが、
while文との違う点は一つだけ存在します。
それは、

「条件が成立している間は実行が繰り返される部分」を、条件にかかわらず最低でも必ず1回は実行されることが保証されていることです。


while文の場合は、条件式によって一度も実行されないことがあるのに対し、do文は必ず一回は処理を実行してくれます。

ループの途中で抜け出すための”break”

すべてのループおけることなのですが、ループ処理の途中でどうしてもループを抜け出したいときには"break"構文を使います。
使い方は簡単です。

#include <stdio.h>
int main()
{
    int array[5];
    int number = 10;

    for(int i = 0; i < 5; i++)
    {
        array[i] = number;
        number = number + 10;
        if (number == 30)
        {
            // ループを抜け出す
            break;
        }
    }
    printf("%d, %d, %d, %d, %d n", array[0], array[1], array[2], array[3], array[4]);
}

このように、"break"を使うことで、ループの途中で抜けることができるのです。

「この条件になるまで、永遠にループして期待する条件を満たしたら"break"で抜ける」
のような実装が可能になります。

まとめ

今回は、C言語における繰り返し処理(ループ)についてみていきました。
似たような処理を繰り返して行いたい場合にコードの節約になったり、見やすくなったりと、とても便利なので積極的に使っていきましょう!

https://itthestudy.com/c%e8%a8%80%e8%aa%9e%e3%81%a7%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%ef%bc%81-if-switch/


 

Kindle Unlimitedで無料で本が読める

 

Kindle Unlimitedを無料で試す

 

なら最初の30日間は無料でコーディング・デザイン・ブログ・英語・Youtubeの参考書・キャリア・副業・マーケティング・漫画・美容知識・雑誌などが読み放題です。

人気の本もあるので是非お試ししてみてください!30日以内に解約すればお金は全くかかりません。

 


最近の投稿

【今すぐ行動しよう】フリーランスエンジニアとブログの相性は抜群!

フリーランスエンジニアがスキルや経験から得たビジネスノウハウを共有する手段として「ブログ」は非常におすすめです。自身のスキルや知識のアウトプットや、実際に自分が経験したことを共有して同じような境遇の人の手助けになるような情報を公開することで自分に帰ってくるメリットは非常に多いです。今回はそのあたりについて紹介していきます。

【経験談】フリーランスのエンジニアは本当に大変なの?安定のコツやポイント

フリーランスのエンジニアは「大変だからやめとけ」という話をよく聞くので、そのことについて現役でフリーランスエンジニアとして生活している私が、その話の実態を解説しようと思います。フリーランスエンジニアの大変なところはもちろんありますが、それ以上にメリットが多いので私個人的には非常におすすめしています。

【幸福度UP】フリーランスエンジニアの「田舎暮らし」実現できます

フリーランスエンジニアとして田舎で暮らす人が増えてるって聞くけど、本当なのかな?どうやったら実現できるのか?今回はフリーランスエンジニアとして田舎で生活をしたいという方向けに、実現可能なのか、実現するにはどうすれば良いのかをご紹介します。

【単価交渉で収入アップ】フリーランスが単価交渉を成功させる4つのポイント

フリーランスが収入をアップさせるための重要な手段のひとつに「単価交渉」があります。今回は、現役でフリーランスとしてエンジニアをしている私が実践して効果のあった単価交渉の方法やコツをご紹介します。

【 今なら無料!】タスク管理ツール「Backlog」を無料で使う方法と手順

今回は、普段のタスク管理からプロジェクトの管理まで幅広く使えるツール「Backlog」を無料で使うための方法とその手段を画像つきで紹介しました。もし気に入らなければ、期間内に解約してしまえば費用はかかりません。また、以外と知られていない「フリープラン」も紹介しているので、是非参考にしてみてください。

Copyright© FUNA BLOG , 2021 All Rights Reserved.