Objective-C 基本講座

ループ文を使う

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
同じ処理を繰り返す方法と、その繰り返しを条件によって終了させる方法を学習します。
講師:
08:08

字幕

このレッスンでは指定した条件で 処理を繰り返すループ文を紹介します ある条件が合ったとき繰り返すものといえば ローンの返済があります 例えば 友達に一万円貸しているとしましょう そして友達が毎日千円ずつ返してくるとしたら その行為は貸付金がなくなるまで 繰り返されるわけです こういった動きをプログラムするのに ループ文が必要になります 例えばここで紹介する while は 後ろに続く括弧内のブール値が 偽になるまでブレース内の処理を繰り返します ここで貸付金をローンという変数にするなら 括弧内にローンが0より大きいという 条件式を指定することで ブレース内の処理はローンが0より大きい間 繰り返されることになります あとは繰り返される処理として ローンから 1000 引くようにすれば このループは貸付金が0以下になるまで 千円ずつ返済する繰り返しとなります 場合によってはずっと ループし続ける点は注意してください ローンを減らさなければ このループは永遠に終わりません いわゆる無限ループになってしまいます また while 文では最初に 条件式が評価されるので 場合によっては処理が 一度も実行されないときもあります 今回ならローンの初期値が0以下だった場合 while 文の処理は一度も 実行されないことになります もちろん借金が無いのだから この動作は正しいのですが 借金に関係なく最低一回は処理を無条件に呼び その後でループするか判断したい場合は ループの前で一度処理を実行するか while 文の代わりに do while 文を使います while 文が最初にループ内処理を 実行する前に条件式を評価するのに対し do while 文はループ内処理を 一度実行してから条件式を評価します そのため手前の処理は不要となります それと do while 文の場合は 括弧の後ろにセミコロンが必要です 状況によって while 文 do while 文を 使い分けるといいでしょう 話を while 文に戻して このループを平日五日分に限定した― 友達とのやり取りとし五日以上は 繰り返させないという条件を加えてみましょう 整数型変数を一つ用意し ループ外で1に初期化しておきます day と名付けました この day をループ処理 一回ごとに一つ増やして 日にちをカウントすることにします そして条件式に day が 5以下という条件を加えます こうすることでこのループは 5回以上繰り返されなくなります ループの話とは関係ありませんが 整数型の変数の値を一つ増やす記述は インクリメント演算子を使っても構いません ここに並べた四つの処理は 全て day の値を一つ増加させます 後ろの二つがインクリメント演算子を 使った処理で プラス記号二つ続けたものが演算子です また一つ減算する場合の デクリメント演算子も存在します これはマイナス記号を二つ続けます インクリメントやデクリメント演算子は 変数の前後どちらかに記述します 前に付けるか後ろに付けるかの違いは 例えば代入式に組み込んだときなどに表れます 代入した後で変更するなら変数の後に置き 代入前に変更するなら変数の前に置きます 試しに後方インクリメントを使ってみます それと数行に分けて書くようにしましょう これは見やすくするためで 制限ではありません ところでこのようなカウント付きのループには while 文より適切な for 文が存在します for 文では括弧の中の条件式を挟む形で 開始前の処理とループ一回ごとに 行う繰り返し処理が セミコロンで区切って記述できます ここに day の宣言や day の インクリメント処理を書けるわけです それぞれ一つの処理なら何でも書けるし 省略することも可能です こうすると day をチェックする 意味が無くなってしまいますが ここでは文法の一例として行っています 開始前処理も消してみましょう 全て省略した場合は無限ループになります 一般に for 文は範囲を決めた ループを表現するのに適しています この場合友達への貸付金が 0より大きい間というループ条件は if 文を使ったループの中断で 実現しても構いません ここで使った break キーワードは ループ外に抜けるという命令になります この位地だと一度ローンから 千円引く処理を実行したあと ローンが0以下ならループを抜けるので これは五日間という制限付きで do while 文を実行することと同じです if 文をローンから 1000 引く処理の前に置けば while 文と同じになります break は for 文だけでなく while ・ do while 文でも利用可能です また continue という キーワードを使えば ループ内処理を一回休むことも出来ます continue はそこで ループ内の処理を中断して ループ処理終端まで進みます そして条件式に進み ループを続けたり終了したりします for 文の場合は条件式に進む前に 繰り返し処理部を実行します 今の記述なら四日目まで進むと その日は何もしないで 五日目に進むことになります それぞれどこに配置するかで 動作が微妙に変わる点にも注意してください また break や continue は 一つのループに対する命令に なる点にも注意してください ループ文は何重にも重ねることが可能で 例えば五日間のループの外にループを被せると 外側のループ処理として 内側のループが実行されることになります この場合 break や continue は 一番近いループに対する命令となり 特に break は内側のループで 行った場合外側のループからは抜け出せません そのため対策として抜けた先でも if 文を用意する必要などがあります またあまり使われてはいませんが goto 文を使う方法もあります ループ外の任意の場所にラベルを用意し break の代わりに goto 文で そのラベル名を指定します ラベルには任意の名前が付けられ 名前に続けてコロンを付けることで ラベルとなります goto 文は実行位置をどんなところにでも 飛ばすことができる点で プログラムの動作を無茶苦茶にできますし 書き方によっては理解しづらい ソースコードにもなります 使用は他に解決策が無いか goto 文を使ったほうが よほどわかりやすい場合に限るといいでしょう ループ文にも if 文同様ループ内処理が 一つなら括弧を省略することができます このレッスンでは 指定した条件で処理を繰り返す― ループ文を紹介しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

6時間39分 (69 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2015年11月18日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。