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

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

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

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

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

Q&A

解決済

3回答

367閲覧

Rubyのrandomの使い方が分かりません。これの使い方を優しく教えてください。 アプリを作るとしてランダムに表示させる文言が変わるものを想定しています。文言は[サ、ク、ラ、サ、ク]でお願いします。

Sakura25

総合スコア7

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

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

0グッド

0クリップ

投稿2018/03/08 12:44

編集2018/03/09 08:14

前提・実現したいこと

localhost/3000で['サ', 'ク', 'ラ', 'サ', 'ク']をRubyのrandを使用して、ランダムな値を生成し、配列の中から文言を取得させなさいと課題を出されたのですが。全く分かりません。 

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

/Users/sakura/camp/greeting/app/controllers/comments_controller.rb:7: syntax error, unexpected keyword_end end ^~~ /Users/sakura/camp/greeting/app/controllers/comments_controller.rb:11: syntax error, unexpected keyword_end end ^~~ /Users/sakura/camp/greeting/app/controllers/comments_controller.rb:21: syntax error, unexpected '=', expecting ';' or '\n' random = ["サ" , "ク... ^ /Users/sakura/camp/greeting/app/controllers/comments_controller.rb:25: syntax error, unexpected end-of-input, expecting keyword_end

該当のソースコード

Ruby,

def
random = ["サ" , "ク" , "ラ" , "サ" , "ク"]
@random = Random.new(0..3)
puts random
end

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

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

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

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

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

guest

回答3

0

ベストアンサー

コメントに提示されていた

ruby

1def 2 random = ["おはよう" , "こんにちわ" , "こんばんわ" , "お疲れさまです"] 3 @random = Random.new(0..3) 4 puts random 5end

これをベースに修正をするなら、こんな風にするとよいかもしれません。

ruby

1def random_word 2 words = ["おはよう" , "こんにちわ" , "こんばんわ" , "お疲れさまです"] 3 @random = words[rand(words.size)] 4 puts @random 5end

投稿2018/03/10 15:16

katoy

総合スコア22324

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

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

Sakura25

2018/03/11 14:09

ありがとうございます。私のをベースにして回答をいただけたので勉強になりました☺️
guest

0

def に関数名記載してないのでシンタックスエラーになってるようです。
randomなんも関係ありません。

ruby

1def myfunction 2 random = ["サ" , "ク" , "ラ" , "サ" , "ク"] 3 @random = Random.new(0..3) 4 puts random 5end

投稿2018/03/09 08:18

編集2018/03/09 08:21
kazto

総合スコア7196

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

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

Sakura25

2018/03/11 14:09

ありがとうございました????
guest

0

配列に文字列を入れておいて、rand で、乱数を求めて、配列の「乱数」番目の文字を取り出すのがわかりやすいでしょうか。

irb での実行結果

$ irb irb(main):001:0> array = ['サ', 'ク', 'ラ', 'サ', 'ク'] => ["サ", "ク", "ラ", "サ", "ク"] irb(main):002:0> r = rand(5); p r; p array[r] 2 "ラ" => "ラ" irb(main):003:0* r = rand(5); p r; p array[r] 4 "ク" => "ク" irb(main):004:0> r = rand(5); p r; p array[r] 3 "サ" => "サ" irb(main):005:0> r = rand(5); p r; p array[r] 2 "ラ" => "ラ" irb(main):006:0> r = rand(5); p r; p array[r] 2 "ラ" => "ラ" irb(main):007:0> r = rand(5); p r; p array[r] 2 "ラ" => "ラ" irb(main):008:0> r = rand(5); p r; p array[r] 0 "サ" => "サ"

参考: Kernelモジュール > rand

投稿2018/03/08 14:07

CHERRY

総合スコア25171

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

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

Sakura25

2018/03/08 14:38

お早い回答ありがとうございます♪ あ、その参考サイト見て分からなすぎたのでここに来ました。 本当に初心者なんです????CHERRYさんの回答もirbやらarrayやら分からないことだらけで; ちなみにこのような回答を予想していました。。 https://www.xmisao.com/2014/03/11/how-to-get-a-random-number-in-ruby.html def random @random = ["サ" , "ク" , "ラ" , "サ" , "ク"] random.rand(0..4) end 私の質問の仕方が悪いのですよね、済みませんがお力を拝借させて下さい。。
CHERRY

2018/03/09 00:16 編集

random の使い方がわかりません。だったので、ruby をインストールすると付属する irb といわれる ruby を1行ずつ実行できるツールを使った例を示しました。 1行目: 配列 array に文字列を入れる。 2行目: rand 関数で、乱数を取得して、変数 r にいれる。 取得した乱数(変数 r に入っている)を表示する。 配列 array から 取得した乱数の位置にある文字列を表示する。 3〜6行目: 表示される 乱数・文字列が変わることの確認の為、2行目を繰り返して実行している。 取得した乱数と array から取り出した文字をわかりやすく対応させるために このように書いただけなのですが、 rand のどの辺りがわからないのでしょうか? あと、質問の本文が、テンプレートのままになっていますので、「質問を編集」して、本文に 何がわからないのかを 記載した方が良いと思います。
Sakura25

2018/03/09 08:04

localhost/3000で['サ', 'ク', 'ラ', 'サ', 'ク']をRubyのrandを使用して、ランダムな値を生成し、配列の中から文言を取得させなさいと課題を出されたのですが今だに全く分かりまん。  app/controllers/comments_controller.rbの部分で def random = ["おはよう" , "こんにちわ" , "こんばんわ" , "お疲れさまです"] @random = Random.new(0..3) puts random end こう書きました。 これもサイトから引っ張って来たもので何をどう考えればいいものかすら、 質問もどうまとめていいものかすら分からないんです(悲) 助けてくださあい!! 質問の本文も直しておきます!
Sakura25

2018/03/11 14:10

ご丁寧にありがとうございました????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問