Java中如何在for循环条件成立时修改变量值?
解决for循环中修改变量值的问题
你的代码核心问题是每次循环都会把firstGreat重置为candies[0],导致你在条件成立时修改的变量值,下一次循环直接被覆盖,根本没法持续跟踪更大的数值。
修正方法很简单,把firstGreat = candies[0];移到for循环外面,只初始化一次:
public static void main(String[] args) { int[] candies = {1, 7, 1, 8, 4, 2, 1, 1}; List<Boolean> newArr = new ArrayList<Boolean>(); // 初始化firstGreat为数组第一个元素,只执行一次 int firstGreat = candies[0]; for (int i = 0; i < candies.length; i++) { if (candies[i] > firstGreat) { newArr.add(true); // 条件成立时更新firstGreat firstGreat = candies[i]; } else { newArr.add(false); } } System.out.println(firstGreat); }
这样修改后,firstGreat只会在找到更大元素时才被更新,循环结束后会输出数组中的最大值(这里是8),同时newArr里会正确标记每个元素是否比之前的最大值更大。
内容的提问来源于stack exchange,提问作者danny kerr
相关产品推荐
相关产品推荐

