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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Q&A

2回答

1560閲覧

Ruby の loop, next を使った課題についての質問です

masasapon8

総合スコア8

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

0グッド

0クリップ

投稿2016/10/18 10:33

編集2016/10/18 23:46

###前提・実現したいこと
現在コードアカデミーを使ってRubyを勉強中なのですが、課題につまづいております。loop, next if ,を使った問題なのですが、エラーとして「18から0までの数字が表示されておりません」と出てきます。エラーの文章の意味がよくわかっておらずわかる方がいらっしゃるかと思い、質問させていただきました。

下記にコードを載せておきます。
よろしくお願いいたします。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

※要求されているコードを載せ忘れていたため追記します。
提示された課題の内容

Add a line to your loop before your print statement. Use the next keyword so that you skip to the next iteration if the number i is odd.

Use the example above for help, but remember that the example above skips even numbers.

ここまで

エラーメッセージ ```Oops, try again. It looks like your loop doesn't print out the numbers 18 to 0. ###該当のソースコード ```ここに言語を入力 ここにご自身が実行したソースコードを書いてください

i = 20
loop do
i -= 1
next if i % 2 == 0
print "#{i}"
break if i <= 0
end

実行結果
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

これを実行すると、191715131197531-1nil
このように偶数が飛んで表示されます。

###試したこと
課題に対してアプローチしたことを記載してください

①iの数字を奇数、偶数いろいろと変えて試してみました。
② i -= 1 の1を2や3に変えてみました。

しかし、おそらくエラーメッセージが言っているのであろう、
「18から0を表示する」というのを満たすことができません。
「nextを使う」というのが条件なため、それを使っての解決法が
見いだせていない状態です。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

ikedas

2016/10/18 11:06

何を質問なさっているのかわかりません。そもそも、宿題は自分で解くものですよ。
sayueda

2016/10/18 11:19

確認ですがどのような課題ですか??
masasapon8

2016/10/18 23:48

sayueda さん ご連絡ありがとうございます。情報が足らずすみません。課題を説明した文と、書いたコードの実行結果を追記しました。ご確認いただければ幸いです。
guest

回答2

0

18から0すなわち偶数を出したいのであれば、

next if i % 2 == 0
→ next if i.odd? もしくは next if i % 2 != 0

にしてみてはいかがですか?

投稿2016/10/18 23:57

sayueda

総合スコア11

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

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

0

もし、正解のコードをそのまま書いてしまうと、
課題を解く力が付かないので、考え方だけ言いますね。


フローチャートの書き方

この問題は、繰り返しと条件分岐が把握できれば簡単です。
具体的には、「フローチャート」を書いてみましょう。

(上記リンクのサンプルコードがC言語なので、分かりにくいかもしれませんが)
書き方の細かい部分に最初はこだわらなくていいので、
箱を矢印でつなぐだけでも、問題が分かりやすくなります。

面倒だと思うかもしれませんが、読み書きしているうちに、
しだいにコードから直接イメージできるようになります。

投稿2016/10/18 11:44

LLman

総合スコア5592

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問