[解決済み] Rubyに「do ... while」ループはあるのか?
2022-03-22 09:33:10
質問
このコードを使って、ユーザーが名前を入力すると、プログラムは空の文字列を入力するまでその名前を配列に保存します(ユーザーは名前を入力するたびにEnterキーを押す必要があります)。
people = []
info = 'a' # must fill variable with something, otherwise loop won't execute
while not info.empty?
info = gets.chomp
people += [Person.new(info)] if not info.empty?
end
このコードは、do ... whileループにすると、よりきれいに見えるでしょう。
people = []
do
info = gets.chomp
people += [Person.new(info)] if not info.empty?
while not info.empty?
このコードでは、情報をランダムな文字列に割り当てる必要はない。
残念ながら、このタイプのループはRubyには存在しないようです。どなたか、もっといい方法を教えてください。
どのように解決するのですか?
注意事項 :
は
begin <code> end while <condition>
はRubyの作者であるMatzによって否定されています。その代わりに彼は
Kernel#loop
は、例えば
loop do
# some code here
break if <condition>
end
ここで メールのやりとり 2005年11月23日の記事で、Matzはこう述べている。
|> Don't use it please. I'm regretting this feature, and I'd like to
|> remove it in the future if it's possible.
|
|I'm surprised. What do you regret about it?
Because it's hard for users to tell
begin <code> end while <cond>
works differently from
<code> while <cond>
RosettaCode wiki にも似たような話があります。
<ブロッククオート2005年11月、Rubyの開発者であるまつもとゆきひろ氏は、このループ機能を惜しみ、Kernel#loopの使用を提案した。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Bashでの単一行whileループの構文
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ActionController::UnknownFormat
-
[解決済み】未定義のメソッド(NoMethodError)ruby
-
[解決済み] -bashです。/Users/myname/.bash_profile: パーミッションが拒否されました
-
[解決済み] Ruby プログラムに一定時間待つように指示する
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] マトリックスサムネーションチャレンジ
-
[解決済み] Rubyで配列を平坦化するにはどうしたらいいですか?
-
[解決済み] ネストされたクラスとモジュールにネストされたクラスはいつ使用するのですか?
-
[解決済み] Rubyで指定されたディレクトリが存在するかどうかを確認する方法
-
[解決済み] Railsでユニークなトークンを作成するための最良の方法?