輝昌2017/7/232019/6/26while文の使い方が知りたいwhile文で処理を抜ける方法が知りたいwhile文で無限ループする方法が知りたいRubyでは繰り返しの条件が「真の間は繰り返し処理を実行する」while文があります。今回はRubyのwhile文の基本的な使い方からら繰り返しを終了し抜ける方法など応用的な内容についても解説します。end内の処理を繰り返し実行します。whileの基本構文は以下の通りです。endを繰り返し処理を実行します。条件式がfalseであれば、繰り返しを抜け、終了します。while文の使い方では具体的なコードを見てみましょう。繰り返し実行され、pメソッドにより、cntの値が繰り返し表示されています。end中で、「cnt+=1」で1ずつ加算しています。endの外に抜けます。while文の応用break・next・redoここでは、whileで繰り返しを抜ける方法を紹介します。好きな回数の時に、繰り返しを終了して抜ける(break)繰り返しをスキップする(continue、next)同じ条件で繰り返しをやり直す(redo)breakの使い方breakは、繰り返し処理を中断し繰り返しを抜けて終了するために使用します。以下では、cntが3の回数の時、繰り返しを抜けて中断し、終了しています。2"cntが3の回数の時に、ループがbreakによって中断され、whileから処理が抜けて終了しているのがわかります。next(continue)の使い方nextは指定の回数の時だけ繰り返しをスキップしたい時に使用します。他の言語ではcontinueが同様の処理を行っていたりしますが、Rubyではcontinueの代わりにnextを使用します。スキップした後は、whileの次の回から繰り返し処理が継続されます。2の回数目ときだけ、pメソッドによる出力をスキップできます。2′′が表示されていませんね。redoの使い方redoは、同じ状態で繰り返しをもう一度行うメソッドです。nextと同じような処理ですが、nextはwhileの条件式の評価からやり直すredoはwhileの条件式の評価は行わず、doのところからやり直すという違いがあります。実際にサンプルコードと[実行結果]を比較してみて、nextとの違いを確認しましょう。回数の時に、redoしています。条件式は考慮されません。redoはwhileの頭のdoのところに戻ります。成り立たないにもかかわらず、doから処理が繰り返されています。このようにredoは、whileの条件式を評価せず、頭のdoから処理を再開する動作をします。redoのこの動きは、なかなか覚えづらいですので、ここでよく把握してください。endの処理を繰り返します。そこで、思い切って条件式にtrueを指定してみましょう。するとwhileは無限ループします。whileの条件式が常にtrueだからです。処理が無限に続きます。(終了するにはCTRL+Cを入力します)このように、whileの条件式にtrueを与えると、簡単に無限ループが実現できます。untilとの使い分けwhileとuntilは以下のような違いがあります。endを繰り返し実行します。endを繰り返し実行します。untilの基本構文は、以下の通りです。endが繰り返されていますね。2018年6月26日whileでキーボード入力処理getsは、入力がCTRL-D(ファイルの終わり。)になった時に、nilを返します。getsを置くと、getsがnilを返した際にlineがnilになり、結果、whileの条件式の評価結果がnilとなります。whileの条件式ではnilはfalseと等価であり、その時点でwhileの繰り返し処理が終了します。それ以外の場合はgetsは入力された文字列を返すので、whileの条件式の評価結果はtrueとなります。これを利用して、入力がある限り繰り返す処理を作ることができます。do?"標準入力に関して詳しくは、以下の記事をご参照ください。2019年8月2日まとめ今回は、Rubyのwhileによる繰り返しについて学習しました!学習のポイントを振り返ってみましょう!whileは繰り返しを行う処理whileの繰り返しを抜ける方法(break)whileの繰り返しをスキップする方法(next)whileの繰り返しをやり直す方法には(redo)whileで無限ループする方法(redo)untilはwhileと逆の条件で繰り返しを行う構文whileとgetsで行をlineに読み込んで入力を繰り返し続けることができる以上の内容を再確認し、ぜひ自分のプログラムに生かし学習を進めてください!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。輝昌こんにちは!貝原(@touhicomu)と申します。現在は、Web業界のフリーランスとして、主にPHP/WordPress/BuddyPress/VPSサーバー構築などの業務を受注しています。現住所は、日本の西海岸、長崎県は波佐見町です。ボランティアでほたる撮影会やそば塾などのスタッフとして参加させて頂いています。以下の活動も行っています。