Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. SwiftBeginner - The while and repeat-while Loops

The while and repeat-while Loops - Japanese Only

みなさまどうも。

さて、続きまして『while文』と『repeat-while文』についてやっていきましょう。最初に『while文』から解説していきます。

『while文』は『for-in文』と同じような感じでループ処理を行える構文です。ループ処理を行うならば『for-in文』の方が遥かに使用頻度が高いですが「ループ回数が未定」のときは『while文』が使用されることが多い、といった感じになりますね。

ではまずサンプルを軽く見てみましょう。

var n = 0

while n < 3 { // 変数『n』が『3』未満の場合にループ処理を行います。
    print(n)
    n = n + 1
}

実行結果はこんな感じです。

0
1
2

変数『n』が『2』になるまでの間、ループ処理が行われていますね。これが『while文』になります。

というわけで文法を確認していきましょう。といっても基本的な文法はめっちゃ簡単です。『while』と記述してその隣に『条件式』を記述して、ループする際の処理を『{}』の中に記述するだけでOKです。

日本語で書くとこんな感じになりますね。

while 条件式 {
    // ここに処理...
}

『条件式』の演算結果が『true』の間はずっと処理を繰り返してくれる感じになります。

尚、『条件式』には演算結果が真偽値(『true』または『false』)になるようなものしか記述できません。他の言語ではOKだったりすることが多いのですがSwiftではNGですので気をつけてください。

while 1 { // 『条件式』に『1』を記述しているのでエラーです。

}

文法についてはこんな感じですね。かなりシンプルだったと思います。

さて、ここで超重要な注意点があります。

お察しの良い方は気がついたかと思いますが、『while文』には『条件式』の更新処理が構文そのものに組み込まれていません。

なので『while文』はシンプルな記述でさくっとループ処理を構築することができるのですが、その半面「無限ループ処理」も簡単に組めてしまうという側面があります。

というわけでサンプルをご紹介します。以下が『while文』で組んだ「無限ループ処理」になります。

// これは絶対に実行しないで下さい。
while true {
    // ここに処理...
}

『while文』の『条件式』に『true』と記述してるだけですね。たったこれだけで「無限ループ処理」が構築できてしまうので『条件式』の演算内容にはめっちゃ注意するようにして下さい。

『while文』を記述するときは必ず『条件式』の更新処理を入れる事と丸暗記しちゃうのも良しです。最初のサンプルだと『n = n + 1』って部分が更新処理に該当しますね。ここ忘れないようにして下さい。

(´-`).。oO(まあ最近のソフトウェアやデバイスはかなり良く出来ていますので...)

(´-`).。oO(『while文』の無限ループ如きで重大な問題に発展するという事態はないかと思いますが...)

(´-`).。oO(コンピューターに負担がかかってしまうことは事実ですのでお気をつけ下さいませ...)

さて、続きまして『repeat-while文』ってやつをやっていきましょう。ちょいと以下のサンプルを見てみて下さい。

while false {
    print("実行されました!")
}

上記の『while文』の『条件式』に『false』と直接記述されていますね。ということは『条件式』が常に『false』になるので上記の『while文』の中の処理は一度も実行されることはありません。

しかし「必ず一回だけは処理を行なわせるようにしたい」というセンチメンタルな気分になることもあるでしょう。

そんなときは『repeat-while文』を使用してみて下さい。記述は以下のような感じになります。

repeat {
    print("実行されました!")
} while false

これを実行してみるとこうなります。

実行されました!

このように「必ず一回だけは実行してくれる『while文』」が『repeat-while文』になります。

文法はまず『repeat』と書き、その隣に『{}』を記述しその中にループ時に実行したい処理を書きます。そしたら『while』と記述し、半角スペースとかをおいて『条件式』を記述すればOKです。

日本語にするとこんな感じになりますね。

repeat {
    // ここに処理...
} while 条件式

『while文』と比べてみると『条件式』を書く部分がうしろになっていますね。

他は特に変わっていないので特に問題はないかと思います。

あとちょっと全体的な注意点になりますが、何かのループ処理を構築するとなったときに『while文』と『for-in文』、どちらを使っても同じように処理を組める場合は『for-in文』を使用した方が無難です。

というのも『while文』は無限ループ処理を簡単に組めてしまうため、ちょっとした記述ミスで事故を起こしてしまうという危険性がちょっと高かったりするのです。これは他の言語でも言えることなので何となくでも覚えておいた方が良いかもしれません。

Swiftの『repeat-while文』は他の言語の『do-while文』と呼ばれる構文とほぼ同じです。

ちょっとややこしいのですが、ちょっと前のSwiftでは『repeat-while文』ではなく『do-while文』になってました。

// ちょっと前のSwiftではこう書いてました。
do {
    print("実行されました!")
} while false

最新のSwiftでは『do』が『repeat』に変わってしまったので要注意です。

まあ『do』が『repeat』って文言に変わっただけで他の変更点はないのですが間違えやすいところなんで気をつけて下さい。

というわけで『while文』と『repeat-while文』については以上になります。続いての記事では『break文』と『contine文』についてやっていきましょう。

ではこの辺で失礼いたします。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .