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

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

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

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

Q&A

解決済

1回答

293閲覧

Rubyで、”ストップ”と言うまで、今までの合計を出すプログラムが作りたいと考えています。

Nish

総合スコア14

Ruby

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

1グッド

1クリップ

投稿2020/03/28 22:08

前提・実現したいこと

Rubyで、”ストップ”というまで
足し算をしていくようなプログラムが作りたいと考えています。

”数字を入力してください。”

”数字を入力してください”
23
”数字を入力してください”
100
”数字を入力してください”
ストップ
合計*129

1 gets.to_iで入力したデータを一つの変数に代入して、
合計するやり方が分かりません。
2 gets.to_iを使っているのに整数以外の
ストップが飛び込んできた場合、いきなり今までのデータを合計する方法が分かりません。

該当のソースコード

puts "Give me a number"
give_me_a_num1 = gets.to_i
puts "Give me a number"
give_me_a_num2 = gets.to_i

puts give_me_a_num1 + give_me_a_num

補足情報

ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]

DrqYuto👍を押しています

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

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

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

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

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

hoshi-takanori

2020/03/28 22:27

ヒント。 1. gets.to_i のように入力をいきなり整数にしてしまうと、「ストップ」を検出できません。 2. 数字が全部でいくつ入力されるか分からないので、give_me_a_num1, give_me_a_num2 のように連番で変数を作ろうとすると破綻します。
Nish

2020/03/28 22:46

ありがとうございます。gets.to_iではなく、gets.chompにして、そこから得た情報に、番号をつけてって、 ストップが出た場合、その番号を整数に変換して、合計を出力すると行ったイメージでしょうか。ムズカしい。もう少しググってみます。
hoshi-takanori

2020/03/28 22:53

たぶん難しく考えすぎというか、プログラミングにおける習慣的なやり方をご存知ないだけだと思います。 gets.to_i のようにくっつけて使うのではなく、gets (gets.chomp) と to_i を分けて使います。 また、入力を全部番号をつけて管理することもできますが、もっと簡単なやり方があります。
guest

回答1

0

ベストアンサー

以下のようにしてください。
"STOP"が入力するまで、数値を加算します。
STOP以外は数値が入力される前提です。"aaa"等が入力されることは考慮していません。

ruby

1#合計をクリア 2sum = 0 3while true 4 puts "Give me a number" 5 val = gets.chomp #データを入力 6 #値がSTOPなら 7 if val == "STOP" 8 #合計を表示して終了 9 puts "total=#{sum}" 10 break 11 else 12 #STOP以外なら、数値に変換し合計に加算する 13 sum += val.to_i 14 end 15end

投稿2020/03/29 05:41

tatsu99

総合スコア5470

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

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

Nish

2020/03/29 06:25

while とif の組み合わせなんですね。大変勉強になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問