Ruby 初心者スレッド ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
174:デフォルトの名無しさん 08/12/05 12:42:43 foo[9] += 1の行とfoo[0] += 1の行が8回も実行されてるからイテレータの外に出す それか1..8を0..9にして、10点未満も90点以上もiの一般式に組み込むかのどっちか 175:デフォルトの名無しさん 08/12/05 12:44:23 うおー、初心者スレっぽいぞ 頭が痛くならない解決法のひとつは、case文を使うこと case tokuten when 90..100 then foo[9] += 1 when 80..89 then foo[8] += 1 when 70..79 then foo[7] += 1 # 中略 when 10..19 then foo[1] += 1 when 0..9 then foo[0] += 1 end もうひとつは、得点とカウンターの関係を冷静に見て条件を抽出すること。 「得点の 1 の位に等しい配列要素を +1 する」 「ただし、100 点の場合は 9 要素目を +1 する」 「なお、9 を 10で割ると 9 /10 = 0 である」 if tokuten == 100 then foo[9] += 1 else n = tokuten / 10 foo[n] +=1 end 176:デフォルトの名無しさん 08/12/05 12:55:13 >>175 >うおー、初心者スレっぽいぞ たしかにな >「得点の 1 の位に等しい配列要素を +1 する」 10の位の間違いか? >「ただし、100 点の場合は 9 要素目を +1 する」 これはひっかかりそうだなー コードはもうちょっと簡潔になるな。 n = tokuten == 100 ? 9 : tokuten / 10 foo[n] += 1 または if tokuten == 100 n = 9 else n = tokuten / 10 # ex. 85 -> 8, 31 -> 3 end foo[n] += 1
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4286日前に更新/244 KB
担当:undef