gpt4 book ai didi

java - 使用 Java 的数组的 printMax 方法...我不明白的一件事是 double result = Numbers[0]

转载 作者:行者123 更新时间:2023-12-01 14:01:24 24 4
gpt4 key购买 nike

我正在和Liang一起学习Java编程入门9e。为什么必须有numbers[0],如double result =numbers[0]?我的意思是括号里的,为什么它必须是0?

public class VarArgsDemo {

public static void main(String[] args) {
printMax(34, 3, 3, 2, 56.5);
printMax(new double[] {1, 2, 3});
}

public static void printMax(double... numbers) {
if (numbers.length == 0) {
System.out.println("No arguments passed");

return;
}

double result = numbers[0];

for (int i = 1; i < numbers.length; i++)
if (numbers[i] > result)
result = numbers[i];

System.out.println("The max value is " + result);
}
}

最佳答案

您询问这意味着什么:

    double result = numbers[0];

就其本身而言,它只是将numbers数组的第一个元素分配给result。零是一个索引值。

使用零值的原因是在 Java(以及大多数编程语言!)中,数组是从零开始索引的,而不是从一开始。例如,

   double[] array = new double[] {1.0, 2.0, 3.0};

正在创建一个长度为3的数组,其索引为012。当然,array[0]的值为1.0

<小时/>

如果您查看上下文,该语句后面的循环将检查 numbers 数组的其他元素,从一个到最后一个(即 numbers.length - 1),并将它们与结果进行比较。

因此,从这方面来看,您所询问的陈述是“启动”算法......就像您“启动”泵以启动它一样。

<小时/>

If we prime the algorithm where numbers[0] will be the first value, then how does this work when the for loop starts with int i = 1, and increases up until i = 3. What happens to numbers[0]?

  • 如果数组有 3 个元素,则当 i 到达 3 时,循环结束

  • 尝试理解此语句的作用:

    if (numbers[i] > result)
    result = numbers[i];
  • 迂腐地...numbers[0]什么也没发生。你没有给它分配任何东西!您正在为结果分配一个值。关注那个发生了什么。

关于java - 使用 Java 的数组的 printMax 方法...我不明白的一件事是 double result = Numbers[0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19329824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com