どうも、堕罪オサムです。
相変わらず(?)国語学・日本語学を専攻しています。
夏季休暇前ラストのレポートが終わらず発狂しそうになっています。ヤバめ。
早く終わらせねば……。
まあ、そんなこんなで本題に入ります。
return?break?continue?
この記事を書こうと思ったきっかけはfor文の中でif文を書いているときのこと――。
「んー。ここってreturnなのかな?それともbreak?」
「いや待てよ、continueってのもあるよな?」
「そもそもreturn、continue、break ってどうやって使い分けるんだろう?」
結局そのとき書いていたものは全部使わないで動かせたのですが(オイ)、なぜ必要ではなかったのかも理解できるようになりたいなという目標のもと、記事を進めていこうと思います。
1.return文について
returnについて調べてみると
関数内で「処理をした結果」をその関数の呼び出し元に「戻り値」として値を返すことができる命令文です。
もう少し付け加えるなら、命令された地点で処理を終了して、その式を評価した戻り値を呼び出し元に返すという具合だと思います。
要するにreturnをした地点での結果が戻り値として返ってくるということですね!
2.break文について
breakは
ループ処理を途中で中断して、その次の文に移すことができるものです。
調べてみるとcontinueとbreakの2つはどちらもループ処理で使うので、2つセットでまとめられているサイトが多いような。よってcontinueの説明に移ります。
3.continue文について
そんなcontinueは
ループ処理の途中でその後の処理をスキップするものです。このスキップというのがめっちゃわかりやすい感覚ですね。
例を出すとするなら「for文で0~10
を出力するという処理の中でi === 4
のときにcontinue
をする」という文を書くと、0~10の中で4だけ出力されないということができます。
breakとcontinueの違い
breakとcontinueの大きな違いは
continueはループ処理以外では使えないという点です。
breakは処理を中断する、continueは処理をスキップする・ループ処理を中断せず最初に戻るという認識でいいと思いました。
まとめ
この記事でのことも含め、なんかこう、端的に言えばやけに難しく考えすぎてしまう。
実際、初学者がコードを書く上で厄介なこととして、勝手に難しく考えていろいろ付け足してみたりした結果、頭もコードもぐちゃぐちゃになってしまうってあると思うんです。私はそうです。今でも。
初学者として最低限覚えなければいけない構文は多分if文・for文(多重ループとか)ぐらいだと思っていて、それはPaizaをやってみたり電卓を作ってみたりして大体そこでつまずいているし、つまずく原因はアルゴリズムや、そもそもそれぞれの構文の理解が足らないことだと感じています(自戒)。
コードを書いていて頭がぐちゃぐちゃになったときはいったん手を止め、自分はいまなにがわからないかをしっかり把握し学習を深めることも大事ではないでしょうか。
私は今回の記事を書く上での目標として最初に挙げていたなぜ必要ではなかったのか? に関して、目標を達成でき、学習を深められたと思っています。
これからもがんばるぞ~。
ここまで読んでいただきありがとうございました!