ゲームの例に戻り､ ユーザーがログインし､ Hを入力する必要がある場合を考えてみましょう｡
実行をクリックすると､ 「ヘイ､ 君のHは何？
そして､ もし私が気に入らないものを与えれば､ それはずっと私に要求し続けるでしょう｡
きちんとした価値を提供する｡
トライブロックには､ もうひとつ､ 取り上げていない部分があります｡
だから､ 私たちは､ トライすること､ 受け入れること､ そして､ それ以外があることを知っています｡
でも､ もうひとつ､ finallyとfinally runというのがあるんです｡
すべてが実行された後の最後に｡
お見せしましょう｡
印刷をしたら｡
仮に､ オッチョコチョイ､ やっと終わったとしましょうか｡
ここで実行をクリックして､ 適切な年齢を与えたらどうなるか見てみましょう｡
得ることができます｡
ありがとうございます｡
私の部族ブロックが成功したからです｡
何も失敗していない｡
LSに行くと､ ありがとうございますと言うんです｡
そして今､ 私は脱却する｡
ループしながらも､ 最後に､ 「ねえ､ 何があっても､ 最後に何かしてほしいの」と言う｡
実際に見てみましょう｡
ゼロみたいなことをしたら
もう一度｡
ゼロより高いhを入力してください､ でも､ それでもオチがつく､ やっと終わった｡
ちんぷんかんぷんなんですが？
わかった？
ねえ､ 番号を入力してください｡
でも､ また｡
オチ､ やっと終わった｡
だから､ すべての最後に関係なく最終的に実行されます｡
なぜ役に立つのか？
ゲームサーバーで作業をしていて､ サーバー上のあらゆる活動を確実にログアウトさせたいと思うかもしれません｡
そこで､ ユーザーが間違った情報を入力しようとしても､ ログインしようとするとします｡
このアクティビティを記録することで､ プログラムを破ろうとする人がいることを検知したり､ 「このユーザーは10回ログインしようとした」という記録を残したりすることができるのです｡
だから､ 最後にとても便利なんです｡
では､ 質問させてください｡
こんなことしたら､ どうなるんだろう？
ここにあるとします｡
続けて
そして､ ここでもう一つブレークステートメントがあるかもしれません｡
そして､ この中にはプリントも入るかもしれませんね｡
できる？
聞いてるか？
こんなことしたら､ どうなるんだろう？
必要であれば､ ビデオを一時停止してください｡
そうでなければ､ 打って､ 走って､ 何が起こるかわからない｡
ゼロを入力するとどうなるのですか？
準備完了｡
得ることができます｡
ゼロ除算エラーが出るので､ ゼロより大きいhを入力してください｡
Aはここで私たちを捕まえて､ ループから脱却します｡
finallyは実行されますが､ printは実行されません｡ なぜなら､ 私たちはループから抜け出し､ これはループに囲まれていることを覚えておいてください｡
よく見えるように削除させてください｡
なるほど｡
こんなことしたら､ どうなるんだろう？
もう一度プログラムを走らせて､ 今度はちんぷんかんぷんにしてみたらどうだろう｡
わかった？
番号を入力してください｡
なるほど｡
やっと終わったよ｡
それから､ あなたの年齢を教えてください｡
では､ ここで何が起こったのか？
さて､ 私たちはこれを試してみました｡
エラー､ バリューエラーが発生しました｡
ちょっと､ 数字を入力してください､ と言って､ 続行するんです｡
これでbreakの代わりにcontinueを使っても､ whileループから抜け出せなくなりました｡
その代わり､ トップに戻ってくる｡
だから､ 再挑戦するのです｡
この部分､ 年齢は？
では､ 最後にちゃんとログインしようとして､ 「おい､ 俺たち18歳だぞ」と出したらどうでしょう｡
次はどうなるのでしょうか？
これでよしとする｡
得ることができます｡
ありがとうございます､ 試しましたから｡
すべてがうまくいく｡
だから例外はない｡
だから､ 私たちは手に入れることができるのです｡
ありがとうございます｡
そして､ ループから脱却する｡
だから､ 今回もこのプリントは印刷されることはない｡
聞こえますか？
でも､ 最後に
さて､ ようやく完成です｡
もし､ ここにこのブレークステートメントがなかったら､ 私は「実行」をクリックします｡
18を与える｡
まいったなぁ｡
ようやく､ あなたの声が聞こえるようになりました｡
ここから脱却しないからこそ､ ようやくこのプリントが印刷されるのです｡
ここから脱走はしない｡
そして､ この行を実行するのです｡
ご理解いただけると幸いです｡
ちょっとひっかけ問題でしたが､ コツがわかってきたようですね｡
次の動画でお会いしましょう｡
バイバイ｡