2

私はプログラミングの新入生で、私の大学では Java を教えています。

宿題からこの演習を行っていましたが、なぜ 0 しか返されないのかわかりません。

ここに投稿することを決定する前に、ここ数日間インターネットを見ていました。変数を開始した場合 (i7 = 0)、Java は値 0 を変更しないことをどこかで読みましたが、i7 = 1 に変更しても 0 が返され、配列は 8 つのインデックスではなく 7 になります。 、キーボードで数字を入力した瞬間に配列の塗りつぶしを開始するはずではありませんでしたか? 多分私は何かを誤解しましたか?最小数を表示するにはどうすればよいですか?

ありがとう!

// 8 つのインデックスの配列を読み取り、最小の数を見つけます

私は持っている:

    int array1[] = new int[8];
    int i7;
    int smallest = array1[0];

    System.out.println("Type 8 numbers.");

    for (i7 = 0; i7 < array1.length; i7++)
    {
       array1[i7] = keyboard.nextInt();

       if (array1[i7] < array1[0])
       {
           smallest = array1[i7];
       }
    }
    System.out.println("The smallest number is " + smallest);
4

4 に答える 4

0

array1[i7] < array1[0]常にまったく同じ比較を実行します。あなたが欲しいarray1[i7] < smallest

さらに、array1[0]初期化後はゼロになるため、smallest負の数値を入力しない限り、常に 0 になります。代わりに、初期化しますsmallest = Integer.MAX_VALUE。これはsmallest可能な最大の整数に初期化されるため、入力する数値は (おそらく) 小さくなります。

于 2013-04-17T16:56:39.450 に答える