Java中比较数组连续元素并打印较大值的代码错误排查求助
问题分析与代码修正
你的代码核心错误是把数组索引赋值给了current,而非对应索引的数组元素值,所以打印出来的是索引数字,不是你需要的数组元素。
错误代码的问题点
在循环的判断逻辑里:
if(list[j]>list[j+1]){ current = j; // 这里存的是索引j,不是list[j]的实际值 }else{ current = j+1; // 这里存的是索引j+1,不是list[j+1]的实际值 }
你需要存储的是数组元素本身,而非元素的位置索引。
修正后的代码
public class Test { public static void main(String [] args){ int[] list = {6,0,4,2,9}; int current; for(int j=0; j<list.length-1; j++){ if(list[j]>list[j+1]){ current = list[j]; // 存储两个元素中较大的那个值 }else{ current = list[j+1]; // 存储两个元素中较大的那个值 } System.out.print(current + " "); } } }
运行结果
修正后执行代码,输出就是你预期的:6 4 4 9
内容的提问来源于stack exchange,提问作者Sandeep Jadon
相关产品推荐
相关产品推荐

