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

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

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

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2824閲覧

キーボードから読み込んだ整数値から0までのカウントダウンを表示するプログラム

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2020/03/07 12:05

編集2020/03/07 13:09

Java

1import java.util.Scanner; 2 3class CountDown1 { 4 5 public static void main(String[] args) { 6 Scanner stdIn = new Scanner(System.in); 7 8 Sysetem.out.println("カウントダウンします"); 9 int x; 10 do { 11 System.out.println("正の整数値:") 12     x = stdIn.nextInt(); 13 } while (x <= 0); 14 while (x >= 0) { 15 System.out.println(x); 16 x--; 17 } 18 System.out.println("xの値は" + x + "になりました"); 19 } 20}

問題集の答え(Java)のコードが上記です

実行例としては コンソール上に
カウントダウンします。
正の整数値:-3 (正の整数値ではないので再度整数を入れてもらう)
正の整数値:5
5
4
3
2
1
0
xの値は-1になりました

という風にしたいです

そしてこのJavaのコードをRubyに書き直そうとしたのですがどうにもいかないので教えてほしいです
下のコードが僕がRubyに書き換えようとしてあきらめたコードです

Ruby

1x = gets.to_i 2 3while x <= 0 4 puts "正の整数値:#{x}" 5 x 6end 7while x >= 0 8 puts "#{x}" 9 x-- 10end 11puts "xの値は#{x}になりました"

僕のコードはこれで挫折しました

最初のJavaのコードをRubyに書き換えるとどんなコードになるのでしょうか?

DrqYuto👍を押しています

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

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

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

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

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

cateye

2020/03/07 12:50

>最初のJavaのコード・・・も、未完成のようですが?
退会済みユーザー

退会済みユーザー

2020/03/07 12:59

うわっマジだ すんません修正します! ありがとうございます!
DrqYuto

2020/03/08 05:13

カウントダウンは0まででしょうか? コードの方は-1までとなっています…
guest

回答2

0

ベストアンサー

以下のようにしてください。

ruby

1while true 2 print "正の整数値:" 3 x = gets.to_i 4 break if x > 0 5end 6while x >= 0 7 puts "#{x}" 8 x -= 1 9end 10puts "xの値は#{x}になりました" 11

投稿2020/03/07 13:49

tatsu99

総合スコア5493

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

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

退会済みユーザー

退会済みユーザー

2020/03/08 00:10

ありがとうございます!解決しました! 質問なのですが、最初のwhileで入れ子になってるx = gets.to_iが次のwhile文で普通に使えてるのに違和感があるのですが教えてほしいです!
tatsu99

2020/03/08 00:34

どのような違和感ですか? 最初のwhileの中でx = gets.to_iで作られたxは、次のwhileでも問題なく使用できます。
退会済みユーザー

退会済みユーザー

2020/03/08 03:48

そうなんですね(゚∀゚) whileの中で使った変数xを他のwhile文で使えるのかということを知らなかったっす
tatsu99

2020/03/08 04:06 編集

ブロックパラメータを使った場合では、そのパラメータの変数と、ブロック外に同じ変数があれば、 それは、別々に扱われます。今回は、このケースには該当しません。 i = 10 (1..5).each do |i| puts i end puts i ------------------- 実行結果は 1 2 3 4 5 10 となります。
退会済みユーザー

退会済みユーザー

2020/03/08 05:34

ありがとうございます! ブロックパラメーターを使った場合は別々に扱われるんですね! わかりやすい解説ありがとうございます!助かりました!
guest

0

while true print "正の整数値:" x=gets.to_i break if x > 0 end i = 0 x.downto(0){|i| puts i } puts "xの値は#{i}になりました"

入出力は以下の通りです。
正の整数値:5
5
4
3
2
1
0
xの値は0になりました

カウントダウンとのことなのでdowntoを使ってみました。

投稿2020/03/08 06:25

DrqYuto

総合スコア432

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問