我是编程初学者,几乎没有经验。我想学习 Java,因为我觉得它是一门非常值得学习的语言。我一直在遵循 youtube here. 上此播放列表的指南如果你仔细看一下,我正在看第 32 个视频,到目前为止 Java 非常有前途
无论如何,我需要帮助理解这段代码:
package learningjava;
class apples{
public static void main(String args[]){
int lucas[]={3,4,5,6,7};
change(lucas);
for(int y: lucas)
System.out.println(y);
}
public static void change(int x[]){
for(int counter=0;counter<x.length;counter++){
x[counter]+=5;
}
}
}
这段代码应该采用数组:int lucas[]={3,4,5,6,7};
并将数组内的每个数字加 5。然后,它应该显示这些数字加上 5 后的总和;它就是这样做的,显示 8、9、10、11、12。我只是希望有人能为我消除这方面的烟雾,因为它很难理解。我不明白数组 lucas
如何连接到int x[]
。我也不明白为什么我们需要 for 循环或者它的作用。:
for(int counter=0;counter<x.length;counter++){
x[counter]+=5;
}
这篇文章的制作和解释都很糟糕,但我现在非常想知道这段代码到底发生了什么。如果有人能给我一个彻底的解释,我将非常感激!
最佳答案
首先,在函数定义中
public static void change(int x[]){
x
是一个正式参数 - 您可以选择任意名称而不是 x
,因为它只是 real
的占位符参数。
后续命令显示该函数将使用real
执行什么操作参数(目前未知)何时使用形式参数而不是实际参数来调用函数。
现在该函数被调用(已使用):
change(lucas);
与 real
参数 - 是的,我们想要改变 lucas
!所以change()
中的陈述函数定义现在使用 lucas
执行而不是x
.
第二:为什么我们需要循环
for(int counter=0;counter<x.length;counter++){
x[counter]+=5;
}
在您的特定代码中,我们不需要循环,也不需要函数 change()
。我们可以使用直接方式添加5
数组中的每个元素:
lucas[0] += 5 // is it shortened form for lucas[0] = lucas[0] + 5
lucas[1] += 5
lucas[2] += 5
lucas[3] += 5
lucas[4] += 5
但是我们通常会遇到两个问题:
lucas
可能有很多个元素,不仅仅是5
.我们想要对其他(目前未知)数组做同样的事情(每个元素加5),例如。 G。
mathew
- 将来。
因此,我们将通过定义函数change()
来一般性地解决这两个问题。它事先不知道数组的名称,也不知道 number of its items
,也不是 values of its items
。让x
是该数组的占位符(形式参数)。
x.length
表示“使用该数组的属性(属性)长度” - 每个数组都有此属性,它是其项目的数量。
因此,在用真实参数( lucas
或 mathew
)替换正式参数( x
)后,我们将知道这个真实数组。
我们在 for
中使用它循环:
for (int counter = 0; counter < x.length; counter++) {
这是另一个占位符(计数器),再次强调 - 它的名称并不重要,它可能是其他占位符,例如。 G。 i
:
for (int i = 0; i < x.length; i++) {
我们需要这个占位符来表示数组元素的索引(一次一个索引) - 它们的编号不是来自 1
但来自0
,因此第一个元素的索引为 0
,第二 1
等等 - 所以最后一个将有索引 x.length - 1
.
如何实现此占位符( counter
、 i
或其他任意名称)将依次具有值 0
, 1
, 2
, ETC。?
for
声明
for (int counter = 0; counter < x.length; counter++) {
有3 parts
在其 header 中,由 ;
分隔:
第一部分定义了最初要做什么:
int counter = 0; // set the first value of the placeholder to 0
第二部分定义了继续(循环)的条件:
counter < x.length; // is the placeholder's value still less than number of items?
如果不满足这个条件,则游戏为for
循环结束。最后一部分定义了要做什么(一次又一次):
counter++ // increase the counter's (placeholder) value
在循环体中执行命令后(在大括号{}
之间)
现在,循环体内只有 1 条语句
x[counter] += 5; // Shorter form for x[counter] = x[counter] + 5;
这将按照之前的规则一次又一次地执行(当然,在用真实参数( lucas
)替换正式之后em> 一 ( x
))。
关于java - 需要帮助理解方法中的数组 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44294194/