この章ではcontinueについて説明します。
continueは for文などで使うのですが、現在進行している周回を抜けても、ループ自体は続けたい場合に使います。
breakの場合にはループ自体を抜けてしまいますので、それ以降の文は実行されませんが、continueの場合には現在進行している文だけを抜けるので、実行自体は続きます。
では例をみてみましょう。 ①初めに0がiに代入されます。
②次にif文での条件式でiが2に なった時にtrueになりますが、iは0でfalseになりますので if文は実行されません。
③が実行され、「0つのリンゴ」が出力されます。
④ for文の先頭に戻り、1がiに代入されます。
⑤次にif文での条件式でiが2に なった時にtrueになりますが、iは1でfalseになりますので if文は実行されません。
⑥が実行され、「1つのリンゴ」が出力されます。
⑦ for文の先頭に戻り、2がiに代入されます。
⑧次にif文での条件式でiが2になった時に trueになりますが、この時点でiは2で trueになりますのでif文のcontinueが実行されます。
continueが実行されることにより、プログラムは先頭に戻るので、continueの後ろにあるは実行されません。
つまり、「2つのリンゴ」は出力されません。
breakですとここでfor文を抜けるのですが、continueは先頭に戻って、再び繰り返しを始めます。
⑨ for文の先頭に戻り、3がiに代入されます。
⑩次にif文での条件式でiが2になった時に trueになりますが、iは3で falseになりますのでif文は実行されません。
⑪が実行され、「3つのリンゴ」が出力されます。
結果は次の通りです。
タグ: for
breakについて知ろう
この章ではbreakについて説明します。
breakはforやwhileなどと一緒に使います。
forやwhileの中で「ある条件下に達した時」にbreakを使ってforやwhileを抜けることができます。
つまり、現在行っている繰り返し作業を強制的に終了させます。
では例をみてみましょう。 for文のブロックの中にif文が入っています。
このif文の意味は「もし、iが4になったら for文を抜けますよ」と言う意味です。breakはこのように一連の流れを強制的に中止するために使われます。
では一連の流れを見てみましょう。
①初めに1がiに代入され、if文での 判定に入ります。もしiが4になったら、for文を抜けますが、iは1でfalseなので if文は実行されません。
②が実行され、「1つのリンゴ」を出力します。
③ for文の先頭に戻って、2がiに代入され if文での判定に入ります。
もしiが4になったら、for文を抜けますが、iは2でfalseなのでif文は実行されません。
④が実行され、「2つのリンゴ」を出力します。
⑤ for文の先頭に戻って、3がiに代入され if文での判定に入ります。
もしiが4になったら、for文を抜けますが iは3でfalseなのでif文は実行されません。
⑥が実行され、「3つのリンゴ」を出力します。
⑦ for文の先頭に戻って、4がiに代入され if文での判定に入ります。
もしiが4になったら、for文を抜けますが iは4でtrueなのでif文が実行されてbreakが実行されます。
ここでfor文を抜けるので、この後のは実行されません。
⑧ breakで for文を抜けたので、を実行して終了です。
インデントについては以前説明しましたが、もう一度復習します。 上の例は3つの文章に分かれていますので
それぞれの先頭を左端に合わせてください。
次はwhile文の中で、breakを使用する例を紹介します。 このプログラムはユーザーが入力したものに対して足し算を行っています。
「while True:」のように条件式をTrueにすると無限に繰り返しを行います。
この無限の繰り返しはbreakで抜けないと文字通り無限に繰り返しを行います。
raw_input関数はユーザーにキーボードからの入力を促すわけですが、例え数値を入力したとしても、raw_input関数は文字列として入力される仕様なので、文字列を数値に変換してあげないと計算することは出来ません。
そこで、その文字列をint関数でキャストして数値にしてあげることで計算することができるようになります。
if文の条件式のaが1になりましたら、while文を抜ける仕様になっていますので最後に1を入力したら計算が終わりになります。
最後に1が入力されていますが、ここで計算は終わりです。
この1は合計には含まれません。
結果は以下の通りです。
繰り返し構文forについて知ろう
この章ではfor文について説明します。
for文は何度も繰り返す処理を必要とする時に使います。
例えばリストの要素をすべて出力したい時に使います。
では例をみてみましょう。 基本構文は次の通りです。 以下の図の順番でリストなどの要素が順番に取り出されていきます。
またfor文の中に複数の文を書く場合には位置を揃えてください。 この例ではリストの中の要素をすべて出力しています。
順番に解説します。 結果は次の通りです。 次の例ではタプルの要素をfor文で出力します。
タプルの要素をfor文で出力していますが、流れはリストの時と同じです。
結果は次の通りです。
次の例では文字列の要素をfor文で出力します。 文字列の場合は1文字1文字が順番にaに代入されて、print文で出力されます。
結果は以下の通りです。
次の例ではfor文の中でrange関数を使用して要素を出力します。 range関数でリストを作ることができることは説明済みですが、for文の中でrange関数を使用してその要素を取り出すことが出来ます。
と同じ意味ですので、結果は以下の通りです。
次の例ではディクショナリの要素を出力します。 〇 keys関数でディクショナリのキーだけを順番に変数keyに入れます。
keys関数は説明済みなので、もう一度見直しておいてください。
〇 print文でキーと値をそれぞれ出力します。
と記述することで、ディクショナリの値を取得することが出来ます。
結果は以下の通りです。
次の例もディクショナリの要素を出力していますが、前の例と同じでキーと値を出力しています。 ディクショナリのキーと値を両方取得したい場合は itemsメソッドを使うことは説明しました。
これまではfor文の中でデータを入れる変数は1つだけでしたが、ここではカンマを挟んで変数をaとbの2つを記述しています。
aにはキーが、bには値が入ります。 結果は以下の通りです。
for文について知ろう
この章では繰り返し構文について説明します。
同じような処理を何度も繰り返すプログラムを書く場合、以下のように同じ処理を何回も書くのは面倒ですし、間違いも多くなりがちです。 そこでforという構文を使うと繰り返し文を簡潔に書くことが出来ます。
for文の構文は以下の通りです。 「オブジェクト」には範囲オブジェクトや配列オブジェクトやハッシュオブジェクトを指定します。
これまで説明してきた範囲演算子は範囲オブジェクトに属しています。
では例をみてみましょう。 この例では1から始まって、その数値がの中のaにセットされ、最後にで出力します。
次は2がのaにセットされ、で出力します。
次は3がのaにセットされ、で出力します。
次は4がのaにセットされ、で出力します。
図にすると以下のような順序で出力されます。 次はfor文を使って配列の要素を出力する例です。 配列の要素の1個1個がaに代入されて、printで出力しています。 結果は以下の通りです。 次はfor文を使ってハッシュの要素を出力する例です。 =>ハッシュの場合にはfor文の中の変数は2つ使用します。
forの中のaとbにはが入り,が順番に入ります。 結果は以下の通りです。
自動計算プログラムを作ろう
この章では5つの足し算の問題を出して、正解数をカウントするプログラムを作ります。
このプログラムには配列、for文が含まれていますので、これらの使い方に対して理解を深めてください。 次は初めのfor文の中を説明します。
以下の箇所でそれぞれの変数にランダムな数が入りますが、この章はfor文と配列の学習ですので、この部分の詳しい説明は「占いプログラムを作ろう」で説明します。
この部分は簡単に言いますとクラスという機能を使っているのですが、number1とnumber2には1から50までの数値がランダムに入ります。
今のところは配列とfor文の使い方だけを押さえておいてください。 つまり、以下の順序で配列にデータが入ります。 つまり、以下の順序で配列にデータが入ります。 結果は以下の通りです。
for文の中でif文とbreakを使ってみよう
この章ではfor文の中でifとbreakを使う方法について説明します。
for文の中ではif文とbreak文を組み合わせて使うこともできます。
breakは現在進行中の実行文を強制終了する機能を持っています。
breakはswitch文で使用しましたが、このbreak文はfor文や(まだ説明してない)while文などで使用することが出来ます。
では例をみてみましょう。 for文のブロックの中にif文が入っていますが、このif文の意味は「もし、iが4になったらforループを抜けますよ」と言う意味です。
breakはこのようにループしているブロックを抜けるために使用します。
iが4になった時にfor文をbreakするので、「4つのリンゴ」「5つのリンゴ」は表示されません。
for文の入れ子の中でbreakを使う場合には注意が必要です。
次の例はforの入れ子の中でbreakを使用する方法について説明します。 上から2つ目のforの中でbreakを使っていますが、入れ子のforの中でbreakを使った場合、breakで抜けることができるのはbreakのあるfor文(例の場合は上から2つ目)だけです。
つまりif文の条件部分が3を超えましたらfor文を抜けるのですが、抜けた後はまた一番前のに戻ってきてループを繰り返します。上の例のようにbreak文はbreak文を含む内側のブロックしか抜けませんが、一気に外側のブロックを抜ける方法を次の例で説明します。 ある条件になったら繰り返しを止めたいと思う箇所にと記述してください。
次に抜けたい箇所にと言う形式で記述すると、そこまで実行位置を移すことが出来ます。
ラベル名は変数名と同じ規則で自由に付けることが出来ます。
for文について知ろう
この章ではfor文について説明します。
何回も同じ処理を繰り返す必要があるときに、for文を使えば簡単に記述することができます。
同じような処理を何度も繰り返すプログラムを書く場合、以下のように同じ処理を書くのは面倒ですし、間違いも多くなりがちです。
そこで、for文を使うと簡潔に書くことが出来ます。 forが最初に実行される時には初期値式から始まります。
初期値式とは条件式を判定するときの初めの変数です。
初期値式は次の例で言えばです。
次に初期値式を元に条件式を判定してTRUEであるならば、処理文が実行されることになります。
条件式は次の例で言えばです。
処理文が実行された後は増減式において、初期値を足したり引いたりする行為を行います。
増減式は次の例で言えばです。
増減式はのようにデクリメントの記述もできます。
では例をみてみましょう。 この例は「猫」と言う文字列を3回出力します。
ではfor文の流れをみてみましょう。
次はfor文の応用でfor文の入れ子について説明します。
つまり、for文の中にfor文を入れると言うことです。
では例をみてみましょう。 つまり、外側のfor文が1回実行されるごとに内側のfor文は3回実行されます。
以下の図のように変数iが1周するごとに変数jは3周しているのが分かります。
この章ではcontinueの使い方を説明します。
continueは現在進行している周回を抜けたとしても、ループ自体は続けたい場合に使います。
主にfor文やwhile文などでよく使われます。
では例をみてみましょう。 if(i==g)の条件がTRUEの場合、下の行にあるを実行することなく、forの先頭に戻ります。
例の場合はgが4なので「4つのリンゴ」と言う文は実行しません。 例ではiとgがイコールになったら、forの先頭に戻って条件判定をしてループを続けるかどうか決めます。
先頭に戻ってiは5になりますが、5はまだTRUEなので「5つのリンゴ」を出力します。
breakと違いループ自体を止めることはしません。
forとifとbreakを組み合わせて使おう
この章ではfor文の中でのbreakの使い方について説明します。
switch文の中でbreakを使用しましたが、これは一連の流れを強制的に中止したい時やブロックを抜けたい時に使いました。
このbreakはfor文の中でも使用することが出来ますので、例を見てみましょう。 for文のブロックの中にif文が入っていますが、
このif文の意味はbreakを使用しているので「もし、iが4になったらfor文を抜けますよ」と言う意味です。
ですので、「4つのリンゴ」「5つのリンゴ」を出力することなくループを終了します。
breakはこのように一連の流れを強制的に中止したい時に使用します。 次の例はforの入れ子の中でbreakを使用しています。 この例では上から2つ目のforの中でbreakを使っていますが、forの中でbreakを使った場合、breakで抜けることができるのはbreakのあるfor文(例の場合は上から2つ目)だけです。
つまり例の場合は上から2つ目のfor文の中のif文の条件部分が3を超えたら、(上から2つ目の)for文をbreakするのですが、breakした後はまた一番前のに戻ってループを繰り返します。 次の例をみてみましょう。 一つ前の例のように入れ子の中のfor文でbreakを使用した場合、抜けることが出来るのは内側のfor文だけですが、一気に外側のブロック(一番前のfor)を抜けたい場合の方法について説明します。
ある条件になったら繰り返しを止めたいと思う箇所にと記述してください。
次に抜けたい箇所にと言う形式で記述すると、そこまで実行位置を移すことが出来ます。
ラベル名は変数名と同じ規則で自由に付けることが出来ます。
この例では の箇所での結果が3より大きければが実行されて、のある場所まで実行位置を移すので二重ループそのものを抜けます。 for以外でもgotoは使うことが出来ます。
以下の例ではif文の中でgotoを使用しています。 初めにint number = 0;の箇所でnumberに0を代入しています。
次にの箇所で「ループ」を出力します。
次にnumber++;の箇所で1を足しているので1になります。
次にif文の中での場合にの箇所まで飛び、ではない場合にはの箇所まで飛びます。
ですので、初めに5回「ループ」を出力します。
この後にがTRUEになるのでが実行され、の箇所に実行位置が移ります。
そして、が実行されてプログラムを終了します。