ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
ダウンロード
ブラウザよりも高速アクセス!
 

ループ (プログラミング)

索引 ループ (プログラミング)

この記事では、コンピュータプログラムにおけるループ (loop) について説明する。ループとは、特定の条件下において特定の処理を繰り返すこと、あるいはそのように作られた制御構造のことを言う。日本語の名詞として「繰り返し」とも。特定の条件が成立している限り、特定の処理を繰り返し何度でも実行する。逆に言えば、条件が成立しなくなったときに、処理を中止する。 ループの、特別な形あるいは最も一般的な形として、無条件に繰り返す無限ループがある。詳細は無限ループの記事を参照。 ループは、繰り返しを継続するかどうかを判断するための条件式(反復条件)を持つ。反復条件がループ構造の始まりに置かれる場合、そのようなループ構造のことを前判定ループと呼ぶ。一方、反復条件がループ構造の後ろに置かれる場合、これを後判定ループと呼ぶ。しかし結局のところ以上のような分類は、プログラミング言語の発展の初期に、まず最初にどちらか片方だけが作られ、後から別のものが追加されたという歴史的由来に過ぎず、ループの「内側」のどこかに「ループの脱出」がある、という構造に一般化できるので前判定後判定という分類は本質ではない(実際に、たとえばVisual Basicの「Do...Loop 文」は、どの場合にも対応するよう対称的に作られている)。単にその「内側のどこか」が、その前端か後端にある場合が多い、というだけである。 むしろ、ループの先頭で何らかのデータをファイルから読み込んで計算を開始し、その途中で、繰り返しのその回を打ち切り次の繰り返しに進む、あるいは繰り返しを終わる、といったこともよくあり(ダイクストラは、最後が途中で終わる場合を「n+1/2回の反復」と名づけた)、さらには入れ子になった内側のループの中から外側のループを終わる、というような処理にどう対応するか、が思案のしどころである。 なお。.

12 関係: ループ不変条件プログラム (コンピュータ)制御構造イテレータエドガー・ダイクストラ再帰無限ループDo-while文For文Microsoft Visual BasicWhile文文 (プログラミング)

ループ不変条件

ループ不変条件(Loop invariant)とは、計算機科学において、ループの不変条件のこと。ループとは、繰り返し実行されるコードのこと。ループの不変条件とは、ループ実行前にも、反復を実行するたびにも成立する条件のこと。これは、論理アサーションであり、アサーションを使ってコードが書かれることもある。不変条件を知ることは、ループの意味を知るのに重要である。 形式的検証において、特にホーア論理を使った方法では、ループ不変条件は形式的な述語論理で表現され、ループの特徴やループのアルゴリズムを証明するのに使われる。ループ不変条件はループに入る前の段階でも真であり、ループを繰り返すたびにも真である必要がある。これは、ループが終了する際には、ループ不変条件とループ終了条件の両方が真であることが保証される。 ループと再帰の基礎的な類似性により、ループ不変条件を使いループの部分的な正しさを証明するのと、再帰プログラムを構造的帰納法を使い証明するのは、非常に類似している。事実、ループ不変条件は、たいていは、ループと等価な再帰的プログラムで証明しないといけない帰納法の仮説と同じである。.

新しい!!: ループ (プログラミング)とループ不変条件 · 続きを見る »

プログラム (コンピュータ)

ンピュータプログラム(英:computer programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。 コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。また設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。.

新しい!!: ループ (プログラミング)とプログラム (コンピュータ) · 続きを見る »

制御構造

制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミングや命令型プログラミングにおいて、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 (プログラミング) 」などの構造(言語の構成要素)である。 制御構造の種類は言語によって様々だが、典型的には以下のようなものがある(用語「ブロック」については、ブロック (プログラミング) の記事を参照)。.

新しい!!: ループ (プログラミング)と制御構造 · 続きを見る »

イテレータ

イテレータ(iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。JISでは反復子(はんぷくし)と翻訳されている。 ジェネレータ (プログラミング) の記事も参照のこと。.

新しい!!: ループ (プログラミング)とイテレータ · 続きを見る »

エドガー・ダイクストラ

ドガー・ダイクストラ(Edsger Wybe Dijkstra, 1930年5月11日 - 2002年8月6日)は、オランダ人の計算機科学者。1972年、プログラミング言語の基礎研究への貢献に対してチューリング賞を受賞。構造化プログラミングの提唱者。1984年から2002年に亡くなるまでテキサス大学オースティン校の計算機科学の Schlumberger Centennial Chair を務めた。 2002年の死の直前、プログラム計算のについての仕事に対して ACM PODC Influential Paper Award を授与された。この賞は翌年からダイクストラを称えてと呼ばれるようになった。 エズガー・ダイクストラと表記されることもある。オランダ語での発音は、IPA表記で で、エツハー・ウィベ・デイクストラに近い。.

新しい!!: ループ (プログラミング)とエドガー・ダイクストラ · 続きを見る »

再帰

再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。.

新しい!!: ループ (プログラミング)と再帰 · 続きを見る »

無限ループ

無限ループ(むげんループ、infinite loop)は、コンピュータ・プログラムの一連の命令が無限に繰り返される(ループする)ことである。永久ループ(えいきゅうループ)ともいう。 専門用語としては一応きちんとした意味があるが、刺激的に感じられる他の用語(例えばメモリリーク)と同様に、通俗的な使い方もされる(「日常会話での使用」を参照)。専門的な意味としての無限ループは、ようだが、実際のところそうではないこともある(#無限ループの検出)。.

新しい!!: ループ (プログラミング)と無限ループ · 続きを見る »

Do-while文

do-while文は、C言語やそれに似たプログラミング言語にある文で、制御構造のひとつである。繰り返す対象の後に置かれた、ブーリアン型の条件式を評価した値の真偽によって、ループを打ち切るか続けるかという動作をする。 まずキーワードの do、続いてコードのブロック(文であればよく、ブロックでなくともよい)、最後にキーワードの while、丸括弧で囲んだ条件式、セミコロン、という構文である。最初にブロック中のコードが実行され、次に条件が評価される。条件が真であれば、ブロック中のコードが再び実行される。条件が偽になるまで、これを繰り返す。while文との違いは、ループに入る前の条件の評価が無く、まず必ず1回はループ本体が実行されることである。 do-while文の制御に関してひとつ注意が必要なことは、continue文の働きについてである。。そのため、、それは間違っている。正確には、continue文は「ループ本体の終わり」に飛ぶもので、do-while以外のループの場合はそこでループによって先頭に戻るのであるが、do-while文の場合は条件式の判定が行われ、それでループが続くかどうかが決まる。 C言語に似ない言語では、異なった構文で同様の機能を持つものもある(while文の記事も参照)。例えばPascalでは、"repeat until" 文である。untilという名前の通り、条件が"真"になるまでループが継続する。 C言語のプログラム例: int x.

新しい!!: ループ (プログラミング)とDo-while文 · 続きを見る »

For文

for文(フォーぶん)はプログラミング言語において条件が真の間だけ与えられた文の実行を繰り返すというループを記述するための文である。forループは、whileループと違って、ループに入る前の初期化(通常カウンタ変数の初期化を行なう)を含む点で異なる。 また言語によってはforeach文をfor … in … のように書くことがあり、このときのfor文はイテレータの繰り返し処理をする文になる。.

新しい!!: ループ (プログラミング)とFor文 · 続きを見る »

Microsoft Visual Basic

Microsoft Visual Basic (マイクロソフト ヴィジュアル ベーシック)はマイクロソフトが1990年代に開発していたプログラミング言語およびその処理系。通常はVisual BasicまたはVBと呼ぶ。Visual Studioに組み込まれ、さまざまな種類のアプリケーション開発に用いられる。後継となるMicrosoft Visual Basic.NETに関してはそちらの項目を参照。1970年代〜1980年代に開発されていた前身のMicrosoft BASICについてはそちらの項目を参照。.

新しい!!: ループ (プログラミング)とMicrosoft Visual Basic · 続きを見る »

While文

while文はプログラミング言語における制御構造のひとつで、ループする文である。英単語 while の意味「何々である間」の通り、なんらかの式を評価した値が真である間、ループする。 C言語、およびそれに類する言語では、ループの先頭の部分に判定が入る。do-while文の記事も参照のこと。.

新しい!!: ループ (プログラミング)とWhile文 · 続きを見る »

文 (プログラミング)

プログラムにおける文(ぶん、statement)とは、コンピュータプログラミング言語によるプログラムを構成するもののひとつで、一般に手続きを表すものである。 文の種類(意味)は、だいたいの類似はあるが、詳細はそれぞれのプログラミング言語によって異なる。 文の構文もそれぞれのプログラミング言語によって異なる。初期のFORTRANやCOBOLのように1行に1つの文を書く言語、C言語や多くのスクリプト言語のように文終端記号(セミコロンなど)で終端する言語、Pascalのように文と文との間の区切り記号で区切る言語などがある(終端記号と区切り記号の違いは、並びの最後のあとに記号が入るか入らないかである(厳密にはここで論じているのは文ではなく複文の構文である。またC言語についての説明は間違っており、例えばif文それ自体などにはセミコロンは現れない(セミコロンのみの「空文」、「do-while文」、そして式の後にセミコロンを付けた「式文」、などがC言語において「セミコロンが最後に付いている文」である。宣言などの後にもセミコロンが付く(が、C言語では宣言は文とは違う「宣言というもの」である)))。 1行1文の言語にあっては、行末または行頭に、言語で指定された記号を付けることで、行が継続しているものとして(継続行)、複数行にわたって文を記述することができるものもある。 類似する言葉として'''式'''がある。式は、必ずしも手続きを表さず、文とは異なり値を持つ(多くの手続き型言語では式にも手続きがともない、副作用という。特にC言語は代入が式である。また逆に言語によっては文も値を持つものもある)。 大まかに言えば、一つ以上の式や関数呼び出しで作られる、手続き構造の単位が文である、と考えてほぼ差し支えない。if文のように分岐構造を表すもの、代入文のように変数の更新を表すものなどが代表例である。構造化プログラミング以降の言語では、複数の文からブロック(「複文」とも言う)を構成できるのが一般的である。 if文などにおける構文の流儀には大きく2通りがあり、ひとつはC言語のような、 という規則のもので(というような文法だと多くのプログラマが信じているようだが、実際には全く違っている(前述。あるいは規格票を参照))、dangling else問題(通常は困るものではない。:en:Dangling elseも参照)の存在が知られている。 もうひとつの流儀は、古くはPerl、近年ではGoがこのようになっているが、 のように、任意の文を直接書くことができないようにしたものである。dangling else対策のひとつでもある。.

新しい!!: ループ (プログラミング)と文 (プログラミング) · 続きを見る »

ここにリダイレクトされます:

Loopプログラム

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »