gpt4 book ai didi

java - for 循环的帮助

转载 作者:行者123 更新时间:2023-12-02 04:15:17 24 4
gpt4 key购买 nike

我创建了一个简短的算法来检查数组中的值,如果没有找到该值,则输出can't find value。

int [] array = {108, 10, 45, 67, 23, 29, 45, 48, 902, 2};
int in, out;
int index = 10;

for(out = 0; out < index; out++)
if(array[out] == 200)
break;
if(out == index)
System.out.println("Coudld not find value");

它起作用了,因为我必须超越一个值来验证该值不在数组中,我意识到即使这个 for 循环会输出 0 - 9,它仍然适用于 out == index (两者的值为 10)。我意识到 for 循环仍然会增加到终止循环的值,这就是它起作用的原因吗?

但是我对此进行了实验,并收到了数组越界错误。

for(out = 0; out < index; out++)
if(out == index)
System.out.println(out);

你能解释一下这是如何工作的/for循环是如何工作的,如果10是终止循环的值,当循环位于9 < index时,它仍然增加到 10,然后 out = 10out = 10 也是如此?

最佳答案

 for(out = 0;out < index;out++)
if(out == index)
System.out.println(out);

超出范围,因为您的数组大小为 10。这意味着它只有 0 到 9 的有效索引。在本例中,您的索引值为 10,这导致了超出范围。

尝试如下操作:

 int index = 9;
for(int i = 0; i < array.Length; i++)
if(i == index)
System.out.println(array[i]);

这将确保您在循环数组时永远不会遇到 OOB 异常。

如果您想尝试在数组中查找某些内容:

 int toFind = 123;
bool found = false;
for(int i = 0; i < array.Length; i++)
{
if (array[i] == toFind)
{
found = true;
break;
}
}
if (found)
sysout("Found");
else
sysout("Unable to find match");

关于java - for 循环的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33392265/

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