質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

3回答

865閲覧

Rubyの簡単な問題です

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/10/23 17:59

前提・実現したいこと

Rubyで0から9まで数えるカウンタの問題を解いています。例としては
0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9
2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 0 → 1 (2からの場合9までいくと0→1というようになる)
このような感じで、入力から数字nを受け取り、nからカウンタをスタートさせて、10個出力します。

発生している問題・エラーメッセージ

一応コードを書いてみたのですが、あまりにもへたくそだったので、もっと良い書き方はないか質問させていただきました。

該当のソースコード

n = gets.chomp.to_i a = n s = 0 loop do puts a a += 1 if a >= 10 break end end loop do if n != 0 puts s end s += 1 if s >= n break end end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/10/23 18:06

「あまりにもへたくそ」だと思うのはどの部分なんですか? 「もっと良い書き方」というのはどういうコードを指すんですか? 漠然とした質問は回答する方も困るんで、具体的にどこに問題意識があって、どのように改善したいと思っているのかを書きましょう。 https://teratail.com/help/avoid-asking 「具体的に何か困っている理由があり、解決したい問題がある場合は、その理由や何に対して解を得たいのかを明確に記入してください。」 「何か困っている理由があり、最適解を見つける為の知見を得たい場合は、その理由や何が知りたいのかを明確に記述してください。」
m.ts10806

2020/10/23 21:40

タイトルは要件を記載してください タグにある情報は書かなくても良いですし、具体性がないです
退会済みユーザー

退会済みユーザー

2020/10/24 04:35

ご回答ありがとうございます。今後は具体的に書くよう心がけます。
m.ts10806

2020/10/24 05:35

こちらは回答ではないです。質問への追記修正依頼です。
guest

回答3

0

ベストアンサー

繰り返しの回数はnの値に依らず10回と決まっているので、10回繰り返して、10で割った余りを出力すれば良いのでは?

投稿2020/10/23 18:14

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/24 04:36

ご回答ありがとうございます。そのやり方のほうが良さそうなのでやってみます。
guest

0

次のコードを研究してみてください。

pr.rb

ruby

1nums = (0..9).to_a 2n = gets.chomp.to_i 3puts(nums.rotate(n).join(" "))

実行例
イメージ説明

投稿2020/10/23 22:35

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/24 04:43

ご回答ありがとうございます。短く読みやすいので参考になります。いろいろ研究してみます。
guest

0

はじめまして、こんにちは。nagasanさん。
今さっき登録したてなので、勝手がよくわからず頓珍漢な
ことを書いている可能性があるかもしれませんがご容赦ください。
Rubyももう10年ぐらいやってないのでかなり当てずっぽうです。
以下のようなコードでいかがでしょうか?

ruby

1n = gets.chomp.to_i 2unless n >= 0 and n <= 9 then 3 puts "0以上9以下の整数を入力してください。" 4 exit 5end 6s = 1 7loop do 8 puts n%10 9 n+=1 10 break if s >= 10 11 s+=1 12end

投稿2020/10/23 18:31

aachyee

総合スコア114

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/24 04:38

ご回答ありがとうございます。こちらのコードの方がすっきりっしていて見やすいので参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問