2017-09-26 15 views
0

最初のループでは、句userVals [i]が0から始まり、インデックス0の値とminVal(0に初期化される)の間の比較が行われます。だから、なぜこの "minVal = userVals [0];"文をforループの前に設定する必要がありますか?配列内の最小値を見つけるためのステートメントの定義

// minVal = userVals[0]; 
for(i =0; i< userVals.length; i++) { 
    if (userVals[i] < minVal) { 
     minVal = userVals[i]; 
    } 
} 
System.out.println(minVal); 

次に、minVal = userVals [0]としましょう。持っている必要があります。私は、userVals [0]が既にminValに割り当てられているので、forループの中の "i"はインデックス1から始めるべきだと思います。しかし、この場合、「i」が0または1のどちらから始まるかは関係ありません。同じ結果が得られます。

minVal = userVals[0]; 
for(i =0; i< userVals.length; i++) { 
    //for(i =1; i< userVals.length; i++) { 
    if (userVals[i] < minVal) { 
     minVal = userVals[i]; 
    } 
} 
System.out.println(minVal); 

あなたのお役に立ちました!

答えて

0

最初の点は、minValに設定し、最初はとする必要があります。マーカー値を選択してループ内で確認したり、Integer/MAX_VALUEのような値を使用したり、リストの要素を使用したりすることができます。リストに少なくとも1つの要素が含まれていることがわかっていれば、最後の方法は最もクリーンです。それが空であれば、userVals[0]はエラーを引き起こします。

あなたの2番目のポイントは、インデックスを1にすることができたようです。私は直ちに原因となるバグは表示されません。

+0

ご協力いただきありがとうございます。 – Ben

関連する問題