Computer-programming-loops

提供:Dev Guides
移動先:案内検索

コンピュータープログラミング-ループ

  • Hello、World!*を5回印刷する状況を考えてみましょう。 これは同じことをする簡単なCプログラムです-
#include <stdio.h>

int main() {
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

それは簡単でしたが、もう一度、* Hello、World!を何千回も書きたいときの別の状況を考えてみましょう。 確かに、printf()ステートメントを何千回も書くことはできません。 ほとんどすべてのプログラミング言語は、 *loop と呼ばれる概念を提供します。これは、1つ以上のステートメントを必要な回数実行するのに役立ちます。 すべての高レベルプログラミング言語は、1つ以上のステートメントを繰り返し実行するために使用できるさまざまな形式のループを提供します。

  • whileループ*の助けを借りて上記のCプログラムを書きましょう。このループの仕組みについて説明します。
#include <stdio.h>

int main() {
   int i = 0;

   while ( i < 5 ) {
      printf( "Hello, World!\n");
      i = i + 1;
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

上記のプログラムは、* whileループ*を使用しています。これは、\ {…​.}で囲まれたプログラミングステートメントのセットを実行するために使用されています。 ここで、コンピューターは最初に、指定された条件、つまり変数 "a"が5より小さいかどうかをチェックし、条件が真であると判断すると、ループ本体に入り、指定されたステートメントを実行します。 ここでは、ループ本体に次の2つのステートメントがあります-

  • 最初のステートメントは_printf()_関数で、Hello World!
  • 2番目のステートメントは_i = i + 1_です。これは、変数 i の値を増やすために使用されます

ループ本体で指定されたすべてのステートメントを実行した後、コンピューターはwhile(i <5)に戻り、指定された条件(i <5)が再びチェックされ、条件が真の場合、ループが再度実行されます。 このプロセスは、指定された条件が真になるまで繰り返されます。つまり、変数「a」の値は5未満です。

最後に、ループステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。 以下に示すのは、ほとんどのプログラミング言語での一般的なループ文の形式です-

ループアーキテクチャ

このチュートリアルは、プログラミングの基本概念を非プログラマに提示するように設計されているため、Cプログラミング言語で使用できる2つの最も重要なループについて説明しましょう。 これらの2つのループについて明確になったら、Cプログラミングチュートリアルまたはリファレンスブックを取り上げて、Cで利用可能な他のループとその動作を確認できます。

whileループ

Cプログラミング言語で利用可能な* whileループ*の構文は次のとおりです-

while ( condition ) {
  /*....while loop body ....*/
}

上記のコードは、以下に示すようにフロー図の形で表すことができます-

Cのwhileループ

以下の重要な点は、whileループについて注意することです-

  • whileループは、キーワード while で始まり、その後に()で囲まれた condition が続きます。
  • while()ステートメントに加えて、ループの本体を中括弧 \ {…​} で囲みます。
  • whileループ本体には、繰り返し実行される1行以上のソースコードを含めることができます。
  • whileループの本体に1行しかない場合は、オプションで中括弧 \ {…​} を使用します。
  • whileループは、指定された condition がtrueになるまで本体を実行し続けます。 条件が偽になるとすぐに、whileループが出て、whileループ本体の直後の次のステートメントから実行を続けます。
  • 通常、条件は関係ステートメントであり、trueまたはfalseのいずれかに評価されます。 ゼロに等しい値は偽として扱われ、ゼロ以外の値は真のように機能します。

do …​ whileループ

whileループは、本文部分で指定されたステートメントを実行する前に、指定された条件をチェックします。 Cプログラミングは、 do …​ while と呼ばれる別の形式のループを提供します。これにより、特定の条件をチェックする前にループ本体を実行できます。 次の構文があります-

do {
  /*....do...while loop body ....*/
}
while ( condition );

上記のコードは、以下に示すようにフロー図の形で表すことができます-

Cのdo …​ whileループ

*do ... while* ループを使用して上記の例を記述する場合、 *Hello、World* は同じ結果を生成します-
#include <stdio.h>

int main() {
   int i = 0;

   do {
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

breakステートメント

ループ内で break ステートメントが検出されると、ループは直ちに終了し、プログラム制御はループに続く次のステートメントから再開します。 Cでの break ステートメントの構文は次のとおりです-

break;
*break* ステートメントは、以下に示すようにフロー図の形で表すことができます-

c breakステートメント

以下は上記のプログラムの変形ですが、Hello World!を印刷した後に公開されます。 3回だけ-

#include <stdio.h>

int main() {
   int i = 0;
   do {
      printf( "Hello, World!\n");
      i = i + 1;

      if( i == 3 ) {
         break;
      }
   }
   while ( i < 5 );
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!

continueステートメント

Cプログラミング言語の continue ステートメントは、 break ステートメントのように機能します。 強制終了の代わりに、 continue はループの次の反復を強制的に実行し、その間のコードをスキップします。 Cの*継続*ステートメントの構文は次のとおりです-

continue;
  • 継続*ステートメントは、以下に示すようにフロー図の形で表すことができます-

C continueステートメント

以下は上記のプログラムの変形ですが、変数の値が3に等しい場合は印刷をスキップします-

#include <stdio.h>

int main() {
   int i = 0;
   do {
      if( i == 3 ) {
         i = i + 1;
         continue;
      }
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!

Javaのループ

以下は、 while および do …​ while ループもサポートする、Javaで記述された同等のプログラムです。 次のプログラムは、Cプログラミングの場合と同じように、* Hello、World!*を5回出力します-

次のプログラムを実行して出力を確認できます。出力は、上記の例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      int i = 0;

      while ( i < 5 ) {
         System.out.println("Hello, World!");
         i = i + 1;
      }
   }
}

Javaプログラミングの break および continue ステートメントは、Cプログラミングの場合とまったく同じように機能します。

Pythonのループ

以下は、Pythonで作成された同等のプログラムです。 Pythonも while および do …​ while ループをサポートしています。 次のプログラムは、Cプログラミングの場合と同じように、* Hello、World!*を5回出力します。 ここで、Pythonはループの本体に中括弧を使用せず、代わりにステートメントのインデントを使用してループの本体を識別することに注意する必要があります。

次のプログラムを実行して、出力を確認してください。 違いを示すために、ループが終了したときに実行されるもう1つのprintステートメントを使用しました。

i = 0

while (i < 5):
   print "Hello, World!"
   i = i + 1
print "Loop ends"

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends

Pythonの break および continue ステートメントは、Cプログラミングの場合とまったく同じように機能します。