![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
forループの中のハッシュをeachしたいのですが、
printすると、一番最後のループのハッシュだけ表示されるようです。
全部中身を出すにはどういうソースを書けばよいのでしょうか。
-----------------------
center = 7
for i in 5..13
if center < 9
ban = { "i" => center }
center += 1
else
ban = { "i" => center }
center = center % 9
center += 1
end
end
ban.each{|key, value|
print(key + "=>", value)
}
No.2ベストアンサー
- 回答日時:
No.1 にて、mtaka2さんがおっしゃている通り、1要素のハッシュで上書きしていますので、結果は1要素になります。
なにをやりたいのかが、質問では分かりかねますが、
5から13までの文字列をキーにもつハッシュを作って表示したいのであれば、
center = 7
ban = { }
for i in 5..13
if center < 9
ban[i.to_s]= center
center += 1
else
ban[i.to_s]= center
center = center % 9
center += 1
end
end
ban.each{|key, value|
print(key , "=>", value , ",")
}
等でしょうか。
ハッシュでeachを使うと順序は保障されませんので、順序を気にするのであればmtaka2さんがおっしゃているように最初から配列をつかう方法が良いと思います。
No.1
- 回答日時:
ループの中で
> ban = { "i" => center }
という変数代入によってbanを「{"i => center}」すわなち1要素しかないハッシュという値で上書きしてすから、ループ終了後のbanの中身はは最後の代入結果だけになりますね。
banを「配列」にして追記してくようにすれば、
ループ終了後に追記内容を全て取り出せるようになります。
---ここから---
center = 7
ban = []
for i in 5..13
if center < 9
ban << {"i"=>center}
center += 1
else
ban << {"i"=>center}
center = center % 9
center += 1
end
end
ban.each{|banelement|
banelement.each{|key, value|
print(key,"=>", value,"\n")
}
}
---ここまで---
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- C言語・C++・C# C#の検索プログラムの問題で下の写真についてなのですが実行した時にfirst、last、center 2 2022/10/13 09:36
- デスクトップパソコン Music Center for PCの、殆どの曲が、こうなってしまい、聞く事が、出来ません。全てC 2 2023/08/14 15:58
- 中古パソコン ウオークマンA-805 2 2023/03/19 16:36
- Android(アンドロイド) youtube の音楽を、ソニースマホXperi1とウォークマンに取り込みたい。 3 2023/02/23 14:33
- スピーカー・コンポ・ステレオ 動画再生も可能なファイル管理のできる音楽再生ソフトはありますか。 2 2022/09/24 19:34
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- 英語 Underline the correct to complete about the text T 3 2022/05/16 12:47
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの特定行を取り出したい.
-
VB6で配列を文字列に変換する方...
-
vbsでテキストファイル内の文字...
-
エクセルへのデータの貼付時に...
-
RichTextBoxの改行を認知してく...
-
excelの、ある数式内の{}の意...
-
VBSで特定の文字列が含まれる場...
-
初心者が簡単なPowerShellスク...
-
数値を浮動小数点32bitHEXコー...
-
VBAのWorksheetFunctionの引数...
-
エクセル、この関数の意味は?
-
VBAで配列に文字列が入らない?
-
C言語 exitの使い方
-
jsp~jspにhiddenを使って変数...
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
[VBS]変数を定数に変換する方法...
-
数字の位ごとの値を表示するプ...
-
Excel-vba 文字列と変数を...
-
テキストボックスの値を変数に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの、ある数式内の{}の意...
-
配列の値を置換するにはどうす...
-
vbsでテキストファイル内の文字...
-
エクセルへのデータの貼付時に...
-
VBAのWorksheetFunctionの引数...
-
RichTextBoxの改行を認知してく...
-
数値を浮動小数点32bitHEXコー...
-
VBSで特定の文字列が含まれる場...
-
○桁にある数値を取得する VB.N...
-
COLUMN(1:1)の意味を教え...
-
【エクセル】 関数による電子...
-
VB6で配列を文字列に変換する方...
-
エクセル、この関数の意味は?
-
VB 配列の内容をファイルに書...
-
copyRecordsetの数値16桁以上に...
-
列数の多いエクセルのデータを...
-
VB.NET 2つの配列を連動して並...
-
Javaのプログラムをルビー言語に。
-
Win32APIでシリアル通信をする...
-
ruby "\\001\\376".unpack("C*"...
おすすめ情報