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

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

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

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

Q&A

解決済

3回答

436閲覧

Javaで結果を一つにまとめたい

wsdjava

総合スコア4

Java

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

0グッド

0クリップ

投稿2019/08/15 04:48

問題点

Javaで食物連鎖のシミューレーションを作っています。
絶滅したら(個体数が0未満になったら)システムを終了する、という機能を作っていて、条件分岐でそれぞれの個体が絶滅した場合に分けたんですが、どの個体も絶滅しなかった時に全ての個体のelse(絶滅しなかった場合)が表示されてしまうのでそれを一個にまとめてたいです。

該当のソースコード

Java

1 if (lion_after < 0) { 2 System.out.println("ライオンが絶滅しました。" + "プログラムを終了します。") ; 3 System.exit(0); 4 }else{ 5 System.out.println("ライオン:"+ lion_after + "うさぎ:"+ rabbit_after2 + "草"+ grass_after) ; 6 } 7 if (rabbit_after < 0) { 8 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 9 System.exit(0); 10 }else{ 11 System.out.println("ライオン:"+ lion_after + "うさぎ:"+ rabbit_after2 + "草"+ grass_after) ; 12 } 13 if (rabbit_after2 < 0) { 14 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 15 System.exit(0); 16 }else{ 17 System.out.println("ライオン:"+ lion_after + "うさぎ:"+ rabbit_after2 + "草"+ grass_after) ; 18 } 19 } 20}

現状

上の書き方だと、
食物連鎖シミュレーション
初期値ライオン:30うさぎ:50草:300
※詳しいルール(きめごと)はRULE.txtをお読みください。※
何日後のシミューレーションを行うか入力してください。
20
20日後...ライオン:35うさぎ:16草570
ライオン:35うさぎ:16草570
ライオン:35うさぎ:16草570
のように三つとも全てのelseが表示されてしまうので、これを一個だけ表示するようにしたいです。
ご教授願います。

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

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

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

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

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

m.ts10806

2019/08/15 04:50

コードが半端ですので、他者がコピペで再現できるように提示してください
退会済みユーザー

退会済みユーザー

2019/08/15 05:57

個体数が0って絶滅してないか?
guest

回答3

0

ベストアンサー

書かれてる部分のみで言える範囲だと

java

1//rabbit_after2がよくわからないですが、草は絶滅してもいいんでしょうか? 2 if(lion_after < 0 ) { 3 gameOver("ライオン"); 4 } 5 if(rabbit_after < 0 ) { 6 gameOver("ウサギ"); 7 } 8 if(rabbit_after2 < 0 ) { 9 gameOver("ウサギ"); 10 } 11 12//何かが絶滅してた場合gameOverメソッドに飛んだ後終了するため、下記は出力されない 13 System.out.println("ライオン:"+ lion_after + "うさぎ:"+ rabbit_after2 + "草"+ grass_after); 14 15 16 public static void gameOver(String name) { 17 System.out.println(name + "が絶滅しました。プログラムを終了します。"); 18 System.exit(0); 19 }

とか割とスッキリするかもしれません。

ところで、質問文でもコードでも
絶滅の定義が「0未満」となっていますが
このままですと0ジャストの場合絶滅していないことになります。

投稿2019/08/15 05:24

編集2019/08/15 05:34
tetutetu

総合スコア419

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

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

0

java

1 if (lion_after < 0) { 2 System.out.println("ライオンが絶滅しました。" + "プログラムを終了します。") ; 3 System.exit(0); 4 }else if (rabbit_after < 0) { 5 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 6 System.exit(0); 7 }else if (rabbit_after2 < 0) { 8 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 9 System.exit(0); 10 }else{ 11   System.out.println("ライオン:"+ lion_after + "うさぎ:"+ rabbit_after2 + "草"+ grass_after) ; 12 } 13 } 14}

変数が分からないため推測になりますがこれでどうですか?

投稿2019/08/15 05:03

編集2019/08/15 05:05
asakuta

総合スコア100

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

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

wsdjava

2019/09/13 02:52

ありがとうございました。
guest

0

ライオンが絶滅しない、かつ、うさぎが絶滅しない、かつ、草が絶滅しない、ときに表示させるようにする、ってことでいいかと


最後に一回だけ、ってことなら、すべてのelse節は削除しといて、最後にそのprintln置いとけばいい、ってことかなw

投稿2019/08/15 04:53

編集2019/08/15 04:57
y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問