学ぶべき最後のコアプログラミング制御フロー構造は条件文( if そして if/else )
あ if/else 次の場合に限り、ステートメントは "if"コードブロックを実行します。テストプログラムが声明に達するときの世界の状態に当てはまります。そうでなければ、プログラムは "else"コードブロックを実行します。
if( テスト ){
コードブロックの場合
} else {
そうでなければコードブロック
}
条件文が便利になる場所を理解するために、Karelにbeeper秒の行を反転させるプログラムを書きましょう。以前に広場にbeeperがあったbeeper 、カレルはそれを拾うべきです。正方形にbeeperがないbeeper 、Karelはそれを1つ置くべきです。
に注意してください if ステートメントは持っている必要はありません else block - その場合、文は以下のように動作します。 while 1回だけ実行されるループ
if( テスト ){
コードブロックの場合
}
最後の例では新しい条件を使用しました。これはKarelが知っているすべての条件のリストです:
| テスト | 反対側 | 何をチェック |
|---|---|---|
frontIsClear() |
frontIsBlocked() |
カレルの前に壁はありますか? |
beepersPresent() |
noBeepersPresent() |
この角にbeeperはありますか? |
leftIsClear() |
leftIsBlocked() |
カレルの左に壁はありますか? |
rightIsClear() |
rightIsBlocked() |
カレルの権利に壁はありますか? |
beepersInBag() |
noBeepersInBag() |
カレルのカバンの中にbeeperがありますか。 |
facingNorth() |
notFacingNorth() |
カレルは北向きですか? |
facingSouth() |
notFacingSouth() |
カレルは南向きですか? |
facingEast() |
notFacingEast() |
カレルは東向きですか? |
facingWest() |
notFacingWest() |
カレルは西を向いていますか? |
おめでとうございます。これで、コアプログラミングの制御フローブロックがすべてわかりました。 Karel、メソッド、whileループ、forループでそれらを学びましたが、if / else文は、Javaを含むほぼすべての主要言語で同じように機能します。
これでビルディングブロックが完成したので、それらをまとめてさらに複雑な問題に対する解決策を構築することができます。大体において、プログラミングはコンピュータによって問題を解決する科学です。問題はしばしば困難であるため、解決策、およびそれらの解決策を実装するプログラムも同様に困難になる可能性があります。これらのソリューションをより簡単に開発できるようにするには、その複雑さのレベルを管理可能な規模にまで削減する方法論と規律を採用する必要があります。