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

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

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

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

Q&A

解決済

3回答

1597閲覧

java ループ

kisaragizinzin7

総合スコア90

Java

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

0グッド

0クリップ

投稿2015/07/30 01:35

コード java public void play(){ Random rnd = new Random(); int run = rnd.nextInt(3); if(run == 0){ System.out.println("0表示"); } else if(run == 1){ System.out.println("1表示"); } else{ System.out.println("もう一度"); }

上のようなコードがあったとして、
run = 2のときにもう一度playメソッドを頭から繰り返すには、else{}の部分に何を付け加えたらよいでしょうか?

0か1が出ればそれぞれ"0表示"、"1表示"を出力して終わって、2が出れば頭から繰り返す処理を行うようにしたいです。

よろしくお願い致します。

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

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

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

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

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

guest

回答3

0

単純にもう一度呼びたいだけなら、自分自身を呼び出すように
play();
を付け加えればいいですよ。

--追記
playという処理をどうしたいのかによって、どう実装するかが変わってきます。

単純にランダムの処理を繰り返したいだけなら、ほかの方が書かれている様に
その処理をwhileでループさせる方がいいです。

play自体に何らかの意味を持たせて、それを繰り返したいのであれば
play()自身を呼んだほうがいいです。
例えば、今後繰り返す処理を複雑化するつもりがあるとか
ランダム情報の取得前に、ユーザに何らかのアクション(Enterを押したら次のランダム生成が始まる等)
を求める、とか機能がふえていくのであれば、playを呼びなおすのがいいかと。

投稿2015/07/30 01:45

編集2015/07/30 02:04
MakotoMiyazaki

総合スコア297

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

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

kisaragizinzin7

2015/07/30 02:26

回答ありがとうございます^^ whileでやってみたいと思います!
guest

0

ベストアンサー

乱数を振って判定までの流れをwhileループの中に入れてしまうといいと思います.

java

1public void play(){ 2 3 Random rnd = new Random(); 4 while(true){ 5 int run = rnd.nextInt(3); 6 7 if(run == 0){ 8 System.out.println("0表示"); 9 break; 10 } 11 else if(run == 1){ 12 System.out.println("1表示"); 13 break; 14 } 15 else{ 16 System.out.println("もう一度"); 17 } 18 }

投稿2015/07/30 01:48

swordone

総合スコア20651

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

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

kisaragizinzin7

2015/07/30 02:27

回答ありがとうございます^^ while(true)ですがwhileの条件文はtrueだけでいいのでしょうか?
swordone

2015/07/30 02:30

ループを抜ける役割はbreak文に任せているのでtrueだけで問題ありません.
kisaragizinzin7

2015/07/30 02:55

解決できました! ありがとうございます。
guest

0

こんにちは。

0か1が出ればそれぞれ"0表示"、"1表示"を出力して終わって、2が出れば頭から繰り返す処理を行うようにしたいです。

を実現するには、以下のようにしても出来ると思います。

java

1package teratail; 2 3import java.util.Random; 4 5public class Q13670 { 6 7 public static void play() { 8 Random rnd = new Random(); 9 10 while (true) { 11 int run = rnd.nextInt(3); 12 13 if (run == 0 || run == 1) { 14 System.out.println(run + "表示"); 15 break; 16 } else { 17 System.out.println("もう一度"); 18 } 19 } 20 } 21 22 public static void main(String[] args) { 23 play(); 24 } 25 26}

以下、実行例です。

もう一度
もう一度
0表示

参考になれば幸いです。

投稿2015/07/30 01:52

jun68ykt

総合スコア9058

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問