Java 需要解释这个for循环的答案吗
我正在学习java,我不明白为什么在上面的代码中答案是20:Java 需要解释这个for循环的答案吗,java,arrays,loops,Java,Arrays,Loops,我正在学习java,我不明白为什么在上面的代码中答案是20: int arrays[]={1,2,3,4,5}; int x = 4; int y = 0; for(int i=0; i < 5; i++){ y+=arrays[x-i]*i; } System.out.println(y); int数组[]={1,2,3,4,5}; int x=4; int y=0; 对于(int i=0;i0 0=0+[4-1]~4*1=>
int arrays[]={1,2,3,4,5};
int x = 4;
int y = 0;
for(int i=0; i < 5; i++){
y+=arrays[x-i]*i;
}
System.out.println(y);
int数组[]={1,2,3,4,5};
int x=4;
int y=0;
对于(int i=0;i<5;i++){
y+=阵列[x-i]*i;
}
系统输出打印项次(y);
能给我解释一下吗
谢谢:)我帮你调试
y=y+[4-0]~5*0=>0
0=0+[4-1]~4*1=>4
4=4+[4-2]~3*2=>10
10=10+[4-3]~2*3=>16
16=16+[4-4]~1*4=>20如果您在for循环的开头编写此代码段
System.out.println("y=" + y + "+" + arrays[x-i] + "*" + i + " => " + (y + arrays[x-i] * i));
。。。您将获得以下输出:
y=0+5*0 => 0
y=0+4*1 => 4
y=4+3*2 => 10
y=10+2*3 => 16
y=16+1*4 => 20
你为什么不把你增加的每一个值都打印出来呢。这样应该更清楚了,为什么不使用某种调试器呢?或者至少尝试打印出所有添加的数字。如果你不确定发生了什么,这会有很大帮助。你应该先试试,如果你已经阅读并尝试过,请用“我是新来的”这个问题提及你的发现。。我真的不知道所有的诀窍和技巧来理解我不清楚的事情,但是谢谢,我会在需要的时候尝试使用它。首先谢谢你,但是~5~4~3~2~1是什么我知道它是数组,但是为什么它是从5到1而不是1到5这一小段[x-I]的答案在哪里?转到下一个循环?谢谢:)但是如何“传递”输出中的[x-i]部分呢?它使计算和输出的答案呢?或者它在哪里