###前提・実現したいこと
現在Rubyの勉強をしており、メソッドを使用せずcatch/throwを用いて入力された数字が素数であるかどうか判定するプログラムを作ろうと考えております。
###発生している問題・エラーメッセージ
test.rb:16:in `throw': uncaught throw :test (ArgumentError) from ex5.rb:16:in `<main>''
###該当のソースコード
ruby
1# coding: utf-8 2begin 3 n = gets.to_i 4 if n < 2 5 puts "2以上の数字を入力してください" 6 raise RuntimeError 7 end 8 rescue RuntimeError 9 retry 10end 11 12s = 2 13 14while s < n 15 if 0 == n%s 16 throw :test, false 17 end 18 s += 1 19end 20throw :test, true 21 22if catch(:test) == true 23 puts "ok" 24else puts "no" 25end
###試したこと
catch/throwの扱い方が間違っているのであろうと予想されるので本なども読みいろいろ調べたが、よくわかりませんでした。catch/throwはグローバル変数のようなものなのかと認識していますが、どうやらそのようには扱えていません。どうぞご教授のほどよろしくお願いいたします。
###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.1.9p490
エディタはemacsを使っております

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。