11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NEAdvent Calendar 2022

Day 8

continue文は結局続けるの?続けないの??

Last updated at Posted at 2022-12-07

はじめに

はじめまして!
NE株式会社 開発統括部のはやしまきです。

エンジニアのみなさん、タイトルを見てこいつ何言ってんだとなっていることでしょう。

すんごい今更なのですが、
コードを読んでいる際、continue文を見ると
「continueって結局続けるんだっけ…?」とよくわからなくなるときがあります。

ここはスキップだよな…と思いながらも心配になり、リファレンスを開くというのを何度もやってます。リファレンスをブクマしておいた方がいいですね。お守りです(?)

意味をもぐもぐ咀嚼し、納得して、もう開かなくていいように記事に残します。
一緒にもぐもぐできたら幸いです!

この記事は、NE Advent Calendar 2022 8日目の記事です。

なぜ勝手に混乱してるのか

  • 英単語の"continue"は「継続する」の意味
  • for文などのループ構造で用いられた際、スキップの指示する

おいおいおい、継続するんかやめるんかどっちや…
どこまでをやって、どこからはやらないのか…

となりました。多分私ぐらいです。

continue文とは

continue文は、ループ構造において書かれた後の残りの処理をスキップし、次のループの最初からまた続けて処理をします。

<?php
for ($i = 0; $i <= 5; $i++) {
    if ($i === 3) {
        continue;
    }
    echo $i . PHP_EOL;
}
結果
0
1
2
4
5

このように、3のときはechoでの出力をスキップし、ループをやめることなく5週目のループに入っています。

continueがある条件のときは「ここでやーめた!」となるわけですね。

リファレンス:continue文

continueの前後の処理はどんな感じ?

continueが書かれている前と後ろに処理を入れてみます。

<?php
for ($i = 0; $i <= 5; $i++) {
    if ($i === 3) {
        echo '< ヤッホー!' . PHP_EOL;
        continue;
        echo 'やっほー! >' . PHP_EOL;
    }
    echo $i . PHP_EOL;
}
結果
0
1
2
< ヤッホー
4
5

continueの前に書かれてあるものは処理されますが、後に書かれたものは処理されませんでした。
挨拶が返ってくることはなかったですね。。虚無

同じ条件式内でcontinueの後にいくら処理を書いても無視されてしまいます。
条件式内の一番最後に書くことになりますね。

結論

continue文は、
ループ内の処理はやめるけど、ループは継続する

「ここでやーめた!はい次行って!」と言ってるイメージです。
よくよく考えるとリファレンス等の"スキップ"の表記がぴったりで、納得します。

……んじゃもう名前skipでよくね??

英単語"continue"の意味は「継続する」だよな……?

私の思ってる「継続する」じゃない可能性も無きにしもあらずだなと思い、英単語の意味も見てみました。

continueとは
(間断なく)続ける、継続する、持続する、(…し)続ける、続ける、(…を)(中断後また)継続する、断続する、(中断後に)続ける、(…と)引き続いて言う、(…に)継続させる

引用:Weblio英和辞書

ふむふむ、やっぱり「続ける、継続する」だな……

……

んんん?

(…を)(中断後また)継続する、断続する、(中断後に)続ける

!!!!!!

「中断後に続ける」!!!!!!

英単語って深いですね。
この処理をcontinueと命名した人の気持ちがわかりました。

おわりに

私の心配のもとであるcontinue文について調べてから納得するまでを書きました。

単純な処理でも、さっと書いて実行してみると、より納得して頭に入りますね。

さらに、英単語の知識もつきました。
普段何気なく使ってる構文の英単語を辞書で見てみると、新たな学びがありそうです!

11
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?