🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

1348閲覧

Javaで配列の形でデータの出力を行いたい。

wsdjava

総合スコア4

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2019/11/12 10:50

前提

現在、Javaで食物連鎖のシミュレーターを作っているんですが、そのシミュレーターで得たデータの表示の仕方を考えています。
シミュレーターは、非常に簡単な作りで、何日後か打つと、決めた個体数の初期値からすでに決められたルールの足し引きの計算が行われ、その日数後の個体の残りの数が出力されるというものです。

実現したいこと

このシミュレーターで例えば、100日後の結果を出力したとします。そこで、個体数の偏移がわかるように何日か毎の個体数を配列などで出力したいと考えています。

食物連鎖のソースコード

Java

1import java.util.Scanner; 2 3class AnimalNo { 4 private int lion; 5 private int rabbit; 6 private int grass; 7 8 AnimalNo(int lionNo, int rabbitNo, int grassNo) { 9 lion = lionNo; 10 rabbit = rabbitNo; 11 grass = grassNo; 12 } 13 14 int getLionNo(){ 15 return lion; 16 } 17 int getRabbitNo(){ 18 return rabbit; 19 } 20 int getGrassNo(){ 21 return grass; 22 } 23} 24 25class Foodchain { 26 27 public static void main(String[] args) { 28 System.out.println("~食物連鎖シミュレーション~"); 29 System.out.println("※詳しいルール(きめごと)はRULE.txtをお読みください。※") ; 30 System.out.println("動物の個体数の初期値を決めてくだい。(ライオン、うさぎ、草の順番に)"); 31 Scanner stdIn = new Scanner(System.in); 32 int lion_f = stdIn.nextInt() ; 33 int rabbit_f = stdIn.nextInt() ; 34 int grass_f = stdIn.nextInt() ; 35 36 AnimalNo initial = new AnimalNo(lion_f, rabbit_f, grass_f); 37 38 System.out.println("何日後のシミューレーションを行うか入力してください。"); 39 int day = stdIn.nextInt() ; 40 System.out.print(day + "日後...") ; 41 42 int lion_eat = day/3 ; 43 int lion_de = day/20 ; 44 int lion_after = initial.getLionNo() - lion_de + lion_eat ; 45 46 int grass_in = day*15 ; 47 int grass_de = (day/3)*5 ; 48 int grass_after = initial.getRabbitNo() - grass_de + grass_in ; 49 50 int rabbit_eat = day/1 ; 51 int rabbit_de = day/50 + (day/1)*1 ; 52 int rabbit_after = initial.getRabbitNo() - rabbit_de + rabbit_eat ; 53 int rabbit_after2; 54 if (grass_after < 0) 55 rabbit_after2 = rabbit_after - (day - 18)*2 ; 56 else rabbit_after2 = rabbit_after + 0 ; 57 58 if (lion_after < 0) { 59 System.out.println("ライオンが絶滅しました。" + "プログラムを終了します。") ; 60 System.exit(0); 61 }else if (rabbit_after < 0) { 62 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 63 System.exit(0); 64 }else if (rabbit_after2 < 0) { 65 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 66 System.exit(0); 67 }else{ 68 System.out.println("ライオン:"+lion_after+"うさぎ:"+rabbit_after2+"草"+grass_after) ; 69 } 70 } 71 }

何か良い出力の仕方はないでしょうか。よろしくお願いします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/11/12 11:41 編集

具体的に記述するとどのような出力になりますか? 「配列の形でデータの出力」を行った場合のサンプルがほしいです。
jimbe

2019/11/12 17:50

> 何か良い出力の仕方はないでしょうか 何をどう出力するのが「良い出力の仕方」なのかはこちらには判断できないことです. それは仕様の問題であって, プログラミングの問題では無いと思います.
guest

回答1

0

なるべくオリジナルのソースコードを残しました。
5日毎の個体数を出力しています。

全くの検討違いなら、ごめんなさい。

java

1import java.util.Scanner; 2 3class AnimalNo { 4 private int lion; 5 private int rabbit; 6 private int grass; 7 8 AnimalNo(int lionNo, int rabbitNo, int grassNo) { 9 lion = lionNo; 10 rabbit = rabbitNo; 11 grass = grassNo; 12 } 13 14 int getLionNo() { 15 return lion; 16 } 17 18 int getRabbitNo() { 19 return rabbit; 20 } 21 22 int getGrassNo() { 23 return grass; 24 } 25} 26 27class Foodchain { 28 29 public static void main(String[] args) { 30 System.out.println("~食物連鎖シミュレーション~"); 31 System.out.println("※詳しいルール(きめごと)はRULE.txtをお読みください。※"); 32 System.out.println("動物の個体数の初期値を決めてくだい。(ライオン、うさぎ、草の順番に)"); 33 Scanner stdIn = new Scanner(System.in); 34 int lion_f = stdIn.nextInt(); 35 int rabbit_f = stdIn.nextInt(); 36 int grass_f = stdIn.nextInt(); 37 38 AnimalNo initial = new AnimalNo(lion_f, rabbit_f, grass_f); 39 40 System.out.println("何日後のシミューレーションを行うか入力してください。"); 41 int day = stdIn.nextInt(); 42 43 for (int i=1; i <= day; i++) { 44 45 int lion_eat = i / 3; 46 int lion_de = i / 20; 47 int lion_after = initial.getLionNo() - lion_de + lion_eat; 48 49 int grass_in = i * 15; 50 int grass_de = (i / 3) * 5; 51 int grass_after = initial.getRabbitNo() - grass_de + grass_in; 52 53 int rabbit_eat = i / 1; 54 int rabbit_de = i / 50 + (i / 1) * 1; 55 int rabbit_after = initial.getRabbitNo() - rabbit_de + rabbit_eat; 56 int rabbit_after2; 57 if (grass_after < 0) { 58 rabbit_after2 = rabbit_after - (i - 18) * 2; 59 } else { 60 rabbit_after2 = rabbit_after + 0; 61 } 62 63 if (i % 5 == 0 || i == day) { 64 System.out.print(i + "日後..."); 65 System.out.println("ライオン:" + lion_after + ", うさぎ:" + rabbit_after2 + ", 草:" + grass_after); 66 } 67 if (lion_after <= 0) { 68 System.out.print(i + "日後..."); 69 System.out.println("ライオンが絶滅しました。" + "プログラムを終了します。"); 70 System.exit(0); 71 } else if (rabbit_after <= 0) { 72 System.out.print(i + "日後..."); 73 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。"); 74 System.exit(0); 75 } else if (rabbit_after2 <= 0) { 76 System.out.print(i + "日後..."); 77 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。"); 78 System.exit(0); 79 } 80 } 81 } 82}

投稿2019/11/26 12:16

yamamotosoft

総合スコア21

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問