Tip:
Highlight text to annotate it
X
[Powered by Google Translate] TOMMY MACWILLIAM:ループについてレッツトーク、共通の1
プログラミングは、我々はCS50を通してわかり構築します。
私たちが実行したいときに私たちは、ループを使用します
複数回タスク。
例えば、私たちは "こんにちは" 100回またはプリントを印刷したい場合があります
アルファベットのすべての文字のうち。
これら両方の場合において、我々は我々がやりたい一つのことを持っている
複数回は、何かを出力します。
しかし、我々は何をプリントアウトするたびに異なる可能性があります。
だから我々はそれぞれに若干異なる何かを行うことができます
ループの繰り返し、またはを介して実行。
我々は、一方で、C言語でループの3つの異なるタイプが表示されます
ループ、forループ、ループしながら行う。
ループは、これらの3つのタイプは、異なる構文を持っているが、
それらの背後にある考え方は同じです。
我々は、中括弧内のコードのいくつかのブロックを定義します
ループの本体と呼ばれ、我々は、実行させたい
何回か数。
体内で使われる変数の値を変更することによって、我々
私たちのループは別の何か、それが実行されるたびに実行することができます。
私たちが書いて任意のループを使って、我々はまた、時を決定する必要があります
ループは実行を停止します。
我々がそうしないなら、私たちの信頼できるコンピュータは続行されます
我々はプログラムを強制終了するまで、そのループを実行します。
スクラッチでは、n回の繰り返しを使用することができます
ループを作成するためにブロックします。
リピート10を言ったブロック内のすべての作品
10回実行されるであろう。
その後、我々はそのループの後の部分に移りたいと思います。
だから私たちの停止条件が単にあった、このブロックはされている
10回を実行します。
それでは確実にするためにスクラッチのためにCでこれを再現してみましょう
リピートブロック内部分が実行されていること
正確に10回、スクラッチは、それぞれのトラックを保つ必要があります
リピートブロックの実行。
私たちのループ本体は、された回数を追跡するために
実行、のは、iという変数を作成してみましょう。
我々はループ以来、ゼロにiをオフから始めましょう
まだ実行されていません。
[OK]を
今、我々はループをオフに開始するwhileキーワードを使用します。
今、我々はループが停止されたときに把握する必要がありますが、よ
それに戻ってくる今、次にこれを残しておきましょう。
かしこまりました。
私たちのループの内部では、同じように、メッセージを出力してみましょう
"こんにちは。"我々はこのためにprintf関数を使用することができます。
かしこまりました。
だから今我々はループ本体の反復が持っていることを記録します
実行された。
私たちはカウンターに1を加算し、または増分することによってそれを行うことができる
変数は、i。
これを行うには、我々は、私はプラス1に等しい、またはそれ以上であると言うことができます
単に、私がプラスプラス。
グレート。
だから今我々は、それぞれの時間は私たちのループが実行されていることがわかります私たちの
カウンタ変数が1ずつ上がります。
だから我々は我々がこれまでに実行した正確にどのように多くの反復を知っています。
ループのある繰り返しで、私たちの値の後に
のiは1になります。
2回繰り返した後、私は2になります。
と10回繰り返した後、私は10になります。
だから、我々は、このループを実行したい場合は正確に10回繰り返した後、
これは我々が停止する場合があります。
だから我々はiが10未満であるときにこのループを実行すると、
それは、まさに私たちが書こうと思いながら、私は何
10未満である。
この条件は、単にifで我々が使用した条件のように見えます
elseブロック。
私たちのループの本体が実行された後、私たちのプログラム
ループの状態に跳ねあがります。
条件は、その後、身体の真である場合
ループが再実行されます。
条件が成立しなくなった場合は、私たちのループはできません
もう実行して、コードの次の行に移動します
私たちのループの下に。
かしこまりました。
それでは、第二のタイプのを見てみましょう
ループ、forループ。
一方、キーワードの横に、かっこ内に、我々は一つのことがあったが、
trueになるために必要な条件
ループ本体が実行される。
私たちは私たちの外にカウンタ変数を作成する必要があったことを意味する
ループのある時点でそれを増加することを忘れないでください
ループの内側。
ループのための私達のためのヘッダは、その一方で、3を持っている
部品、これらの各々は、セミコロンで区切られます。
私たちの最初の3番目の例では、我々はすべてのカウンターやヘルパーを宣言することができます
我々は、ループ内で使用したいのですが変数。
実際には、これは本当に便利です。
私たちは本当に私たちのしばらく後、その変数を必要としない
ループが実行されたので、私たちは本当にそれを宣言する必要はありません
ループの外側。
第二番目は真でなければならない状態になります
本体は同じように、再実行できるようにするために
私たちのwhileループインチ
私たちの最後の3番目の例では、我々は次のようになりますステートメントを実行できます
ループの各反復の後に実行されるため、我々は持っていない
ループ本体にそれを構築することができます。
それでは、5から1までカウントダウンするためのループを書いてみましょう。
我々のキーワードから始めましょう。
我々は、我々がどのよ、最初のカウンタ変数を作成することができます
我々はダウンカウントしているので、5に、この時間を設定する
セミコロンが続く。
次は私たちが戻ってくる私たちの条件です。
第三に、我々は後にカウンタ変数をデクリメントしたいのですが
ループの各反復。
だからではなく、私プラスプラスを言うよりも、我々は、i - マイナスを言うでしょう。
かしこまりました。
だから我々は、私がまだある間、ループ本体を実行したい
0より大きい。
ループの本体では、のは、iの値をプリントアウトしてみましょう。
そうするために、我々は、%dを使用して、printf関数を使用します
プレースホルダ。
覚えておいて、そのプレースホルダが置き換えられます
iの値。
最後のは、ループのための私達の後のステートメントを追加してみましょう。
我々は、このループを実行すると、iは5でオフを開始します
そう5が印刷されます。
かつて私は0になる、継続条件、iは
0より大きく、もはや保持されません。
それで、我々のループの実行が停止され、我々が表示されます
ループの後のステートメント。
だから、このコードを実行してみましょう。
まず、コンパイルします
カウントダウンを作るとcountdown.c。
今、私たちは。/カウントダウンでこのコードを実行することができます。
両方のwhileループで、ループのために、私達の継続
条件は本体の前にチェックされます
ループの実行されます。
これはつまり、私たちの条件が最初にされていない場合
trueに設定すると、我々のループの本体が実行されることはありません。
だから、後の状態を確認するために便利なことがあります
ループの本体ではなく、それ以前よりも。
それでは、番号の入力をユーザーに要求するためにループを書いてみましょう
正の数が入力されるまで。
ユーザーが入力した場合は負の数を、我々は彼らに聞きたいよ
別の番号のために。
だから我々は内側になるように、このプロンプトがよいでしょう
ループオフボディ。
しかし、ループを初めて実行すると、ユーザー
まだ私達に番号が与えられていない。
だから、それはポジティブだかどうかを確認しても意味がありません。
代わりに、私たちは身体の後に数字を確認したいと思う
ループが実行されます。
我々は、DO WHILEループでこれを行うことができます。
まず、保持する変数nを作成します
ユーザーの入力。
今、私たちは、中括弧であること、その後にdoキーワードを使用します
私たちのループの本体をオフに開始されます。
ボディでは、との数字の入力をユーザーに求めることができます
機能を場合、getInt。
今、私たちは、このループの本体を再度実行したいと思うなら
ユーザは、負の数を入力したので、私たちはnながら言うよ
0未満です。
while文の後にここにセミコロンに注意してください。
だから、このコードを実行してみましょう。
まず、正作るとこれをコンパイルします。
今、私たちは。/ポジティブでプログラムを実行することができます。
我々はこのプログラムを負の数を与えた場合、負のような
4、その後、我々は以降の数のために再度入力を求められます
私たちのDOループの条件が真であった。
かつて我々はその後、8のように、正の数を与える
私たちのDOループの条件は、もはや真ではありませんしながら。
だからループが再実行されません。
そして、それは我々がCで使用しますループの3つのタイプのそれだ
私の名前はトミーであり、これはCS50です。