Part8: ジャンプ

凛「さまあああああああああああああああああういいいいいいいいいいいいいいいいいいいいいいいいいいいいいいんっ!!」
ことり「そのジャンプは、いいから・・・」

ことり「今回は、主にループから抜けるのに使うジャンプを見てみますね」
凛「とんんんんんんんんんんんんんんんんんんでえええええええええええええええええええええええええええええええっ!!」
ことり「もういいからっ!」

ことり「ジャンプの構文にはbreakcontinueがあります。returnもそうなんだけど、それは関数をやった後にするね」

ことり「まずはbreak。これは、普通に使うと単純に実行中のループから抜けます」

begin loop
end loop
begin loop
after loop

凛「1回目は普通に実行されて、2回目はifに入るから、そこでbreakしてループを抜けてるね」
ことり「よくできました♪」

ことり「次にcontinueは、ループを抜けるんじゃなくてループの先頭に戻ります」

begin loop
end loop
begin loop
begin loop
end loop
after loop

凛「continueで戻っちゃうから、2回目のend loopだけ出力されないんだね」

ことり「ジャンプにはラベルを使って、どのループに対するジャンプか指定する方法もあります」

ことり「まず多重ループの中から普通にbreakした場合」

start outer loop
start inner loop
end inner loop
start inner loop
end outer loop
start outer loop
start inner loop
end inner loop
start inner loop
end outer loop
start outer loop
start inner loop
end inner loop
start inner loop
end outer loop
after loop

凛「内側だけ抜ける感じ?」
ことり「うん。だから、外側のループも抜けたかったらもう一回breakしないといけないよね。でもラベルを使うと」

start outer loop
start inner loop
end inner loop
start inner loop
after loop

ことり「loopっていうのがラベルなんだけど、こんなふうに指定したループを一気に抜けることができるの」
凛「おおっ、これは便利にゃ!」
ことり「言語によっては例外投げたり泣く泣くgoto使ったりしてた大域脱出だけど、この機能があればとっても楽になるね」
凛「continueにも使えるの?」
ことり「うん。ラベルで指定したループの先頭に戻る動きになるよ」


ことり「ここまでで、制御構造はおしまいです。次回からは関数について見ていきますよ」
凛「はーい!」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です