Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

コマンドライン引数と乱数

課題で
1.コマンドラインで整数値を1つ受け取る
2. 1. で受け取った値の数だけ、1~100の数字をランダムで生成する。

というのがあるのですがこの 2. がどうやっても受け取った値の数だけ乱数を表示することができません。

すっきりわかるJAVA入門やサイトを見ながらやっていたのですが、
(整数値は常に”2”にしてあります)1つしか表示されなかったり
乱数で表示された数字の分だけ同じ数字がずらっと表示されたりします。
(乱数で4が表示されたら4が4つ表示される、という感じです)

package JavaKadai1;

import org.omg.CORBA.PUBLIC_MEMBER;

public class JavaKadai1 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        
        //引数
        if(args.length == 0){
            System.out.println(args[0]);
            
        }else{
            
            int t = Integer.parseInt(args[0]);
            
            for(int i = 0;i < args.length;i++){
                System.out.println("受け取った整数値は");
                System.out.println( args[0]);
    
            }
        }
    }
    {

    //乱数の作成    

int i;
int [] date = new int [i];
System.out.println("乱数は");
for( int i = 0; i< date.length;i++){
    date[i] = (int)(Math.random()*100)+1;
    if( (int) i == date.length-1){
        System.out.println(date[i]);
    }
}
}
}

ここまで本とサイトを見ながらやったのですがどこをどう変えればいいでしょうか?
因みに上のままですと
for ( int i = 0; i < date.length; ++i ){ 
のところの int i の i が重複ローカル変数 i でエラーが出てしまします。試しに t に変えてみたら他のところに多数の(初期化されていません、みたいな)エラーが出てしましました。

この問題に8時間くらいは費やしたのですが一向にどこがだめなのかわからないので教えていただければ幸いです。

勉強を初めてまだ1週間しか経ってないのでコード?がわかりにくいかもしれません。
自分で作ったので作り方がおかしかったらそこも教えていただけるとうれしいです。

2

回答

122

閲覧

2件の回答

評価

0

プログラムは思ったとおりに動くものではなく書いたとおりに動くものだ。
自分が書いたものがすべてということだ。
何を書いているのか理解していなければ、頭で考えたように動くことはまずない。

>for(int i = 0;i < args.length;i++){

ここで書いているforは、何を期待して書いたのか? args.length はどういう意味で何を期待したのか?

int [] date = new int [i];

このnew int[i]は何を期待して書いたのか? i には何の意味があるか?

思ったとおりに動いて欲しければ、こういう一箇所一箇所をちゃんと理解しないといけないということだ。
適当に書いて適当にいじって、エラーが取れないから書き方を教えてもらうのでは、まず力を付けることはできない。

何時間費やしたかは回答する側には何の関係もない話だ。
そんなことを書くよりも、どこまで理解できているかや、ネットでどのような調査をして何を試したかを書く方がいい。

評価

0

すいません、そうですね。

ついでですが、前日質問したところは無事に解決できました。

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名