2016-10-20 218 views
-1

在這種情況下,數組nums中有一個未定義的整數量,我試圖找到最大並打印它。當我這樣做時,a總是打印爲0,因爲循環中發生的任何事情都不會影響到它之外的值。有人知道怎麼修這個東西嗎?在循環內更改for循環外的變量

int a = 0; 
for(int i=0;i>nums.length;i++){ 
    if(nums[i]>a) 
    a=nums[i]; 
    i++;} 
System.out.print(a); 
+4

使用I

+2

是'i'每雙增量迭代打算? – Bathsheba

+1

@PavneetSingh:恕我直言,把這個作爲答案並處理雙'i ++'沒有什麼壞處。 – Bathsheba

回答

4

此代碼有兩個錯誤:

  1. 因爲i循環將不會執行將小於nums.length
  2. 你遞增循環索引的兩倍值開始!

你的循環應該是這樣的:

for(int i=0;i<nums.length;i++){ 
    if(nums[i]>a) 
    a=nums[i]; 
} 
0

這裏是你的問題的解決方案:

import java.util.*; 

class Main { 
    public static void main(String[] args) { 
    List<Integer> arrayList = new ArrayList<Integer>(); 
    Random r = new Random(); 

    // Fill the ArrayList with integer RandomNumbers 
    int size = r.nextInt(100); 
    int maxValue = 0; 
    for(int i=0 ; i < size ; i++){ 
     int value = r.nextInt(1000); 
     System.out.println("Current value: " + value); 
     arrayList.add(value); 
     if(value > maxValue) 
      maxValue = value; 
    } 

    System.out.println("Max: " + maxValue); 
    // If u want to shuffle the list 
    Collections.shuffle(arrayList); 
    } 
}