在循环内更改for循环外的变量

时间:2016-10-20 16:30:18

标签: java loops variables for-loop

在这种情况下,数组nums中有一个未定义的整数,我试图找到最大的并打印它。当我这样做时,a总是打印为0,因为循环中发生的任何事情都不会影响它之外的值。任何人都知道如何解决这个问题?

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

2 个答案:

答案 0 :(得分:4)

此代码有两个错误:

  1. 循环永远不会执行,因为i的值将小于nums.length
  2. 你将循环索引递增两次!
  3. 你的循环应如下所示:

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

答案 1 :(得分: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);
  }
}