先ほどJAVAプログラムのことで質問したものです。下に書いてある例のように表示させたいのですが、どのようにプログラムを書けばよいでしょうか?


「クラス」 frutu
[フィールド] int meron
メロンの個数を格納します
[フィールド]int banana
バナナの個数を格納します
[フィールド]int ringo
りんごの個数を格納します

[クラス] tabemono
[メソッド]static void printfrutu(frutu d)
dを[メロンmeron個,バナナbanana個、りんごringo個]という形式で標準出力します。

[メソッド]public static void main(String args[ ])

1回目と2回目のメロンバナナりんごの個数をargsに代入します。
それをdに渡します。


1回目 メロン5個、バナナ5個、りんご5個
2回目 メロン6個、バナナ6個、りんご6個
というふにしたいのですがどうすればいいでしょうか?

前回と同じで弟から頼まれた質問なので書き方が悪いかもわからいですが、解る方いらっしゃればお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:mogos No.1

回答回数33ベストアンサー獲得回数0

ポイント25pt

URLはダミーです。

さっと書いてみましたがこんな感じでいいですか?

======================================

class frutu{

public frutu(int meron, int banana, int ringo){

this.meron = meron;

this.banana = banana;

this.ringo = ringo;

}

public int getMeron(){return meron;}

public int getBanana(){return banana;}

public int getRingo(){return ringo;}

private int meron;

private int banana;

private int ringo;

}

class tabemono{

static void printfrutu(frutu d){

System.out.print(”[メロン”+d.getMeron()+”個,”);

System.out.print(”バナナ”+d.getBanana()+”個,”);

System.out.println(”りんご”+d.getRingo()+”個]”);

}

public static void main(String args[]){

try{

frutu f1 = new frutu(Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2]));

frutu f2 = new frutu(Integer.parseInt(args[3]), Integer.parseInt(args[4]), Integer.parseInt(args[5]));

printfrutu(f1);

printfrutu(f2);

}catch(Exception ex){

System.err.println(”入力エラー”);

}

}

}

id:zakkman

ありがとうございます〜 弟に見せてみます。

2004/09/23 22:29:01
id:syuzabu No.2

回答回数155ベストアンサー獲得回数2

ポイント25pt

public class frutu {

public:

private int meron, banana, ringo;

public void Clear() {

meron = 0;

banana = 0;

ringo = 0;

}

public void Add(int meron, int banana, int ringo) {

this.meron = this.meron + meron;

this.banana = this.banana + banana;

this.ringo = this.ringo + ringo;

}

}

public class tabemono {

static void printfrutu(frutu d) {

System.out.println(

”メロン” + d.meron + ”個,” +

”バナナ” + d.banana + ”個,” +

”りんご” + d.ringo + ”個”

);

}

public static void main(String args[]) {

StringTokenizer st0, st1;

int cnt, nFrutu0, nFrutu1;

nFrutu0 = new int[3];

nFrutu1 = new int[3];

st0 = new StringTokenizer(args[0], ”,”);

st1 = new StringTokenizer(args[1], ”,”);

if (st0.countTokens != 3) return;

if (st0.countTokens != st1.countTokens) return;

cnt = 0;

while (st0.hasMoreTokens()) {

nFrutu0[cnt] = Integer.parseInt(st0.nextToken());

nFrutu1[cnt] = Integer.parseInt(st1.nextToken());

cnt++;

}

frutu moriawase = new frutu();

moriawase.Clear();

moriawase.Add(nFrutu0[0], nFrutu0[1], nFrutu0[2]);

moriawase.Add(nFrutu1[0], nFrutu1[1], nFrutu1[2]);

printfrutu(moriawase);

}

}

------------------------------------------------------------------------

久々にJavaのコードっぽいもの書いてみました。

コード汚い&汎用性ゼロでスマソ。(コレ以外に使えんがなw)

ちなみに動作確認してません。(^-^:) 多分動くよ〜な気はします。(笑)

引数は メロンの個数,バナナの個数,りんごの個数 って感じで渡して下さい。

具体的にはメロン5個、バナナ2個、りんごなしの場合は [ 5,2,0 ]です。

> java frutu 5,2,0 2,1,3

↑だと1回目「メロン5,バナナ2,りんご0」2回目「メロン2,バナナ1,りんご3」

ちなみにソースコード見てもらえば一目瞭然なんですが

引数2個以上渡さないと多分例外発生するかとw

2個以上渡しても2個までしか使いませんし、例外処理もない。(笑)

まぁ、参考程度な駄ソースという事で…ま、動かないよ〜な気もしてきたw

※文法合ってるか不安ですな、1年以上Java触ってないよ。(T-T)

id:zakkman

ありがとうございます。僕はさっぱりわからないので確認は質問者の弟のほうでw

2004/09/23 22:31:43
  • id:syuzabu
    あぁ駄ソースでした。(汗)

    いやぁ、すみません。今改めて見たらprivate属性の
    meron,banana,ringo が printfrutu関数で普通に使ってる。(笑)

    > 1回目と2回目のメロンバナナりんごの個数をargsに代入します。
    > それをdに渡します。
    何故か「1回目と2回目のメロンバナナりんごの総数を求める」と
    自分の中のアホな脳みそが勝手に解釈しておりました。(^-^;;)

    コンパイル通らない上に、求めてる結果と違う結果になってしまた。
    申し訳ないです、mogos様のソースを参考願います。




    …やぱ俺は似非プログラマだな。(*゜▽゜)ニパ♪ ←開き直り(ぉ)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません