gpt4 book ai didi

java - 控制 for 循环内的 if-else 语句

转载 作者:行者123 更新时间:2023-12-01 13:17:48 25 4
gpt4 key购买 nike

static void merge(int []part1,int []part2,int []array)
{
int index1=0;
int index2=0;

for(int k=0; k<array.length; k++)
{
if(index1==part1.length)
{
array[k]=part2[index2];
index2++;
System.out.println("fourth");
}
else if(index2==part2.length)
{
array[k]=part1[index1];
index1++;
System.out.println("third");
}
else if(part1[index1]<part2[index2])
{
array[k]=part1[index1];
index1++;
System.out.println("second");
}
else
{
array[k]=part2[index2];
index2++;
System.out.println("first");
}
}
}

part1part2 长度为 4,数组长度为 8。在这种情况下,为什么“第二个”是第一个打印的而不是“首先”?

条件都是false,这就是为什么else是第一个打印的?

我对else if有点困惑。

最佳答案

在 if(condition) else if(condition2) else ... 中,没有要执行的第一个/第二个。而且这并不是真正的 java 特定的。只有条件为真的 block 才会被执行。首先你有:

if(index1==part1.length)

=>索引1=0

=> 第 1 部分.长度 = 4

所以这个条件是假的。

else if(index2==part2.length)

我们这里有完全相同的场景,条件为假

else if(part1[index1]

这里,除非我们知道输入数组中有什么,否则我们无法知道它是 true 还是 false,但根据您的评论,这个条件是 true,因此该 block 中的代码与 System.out.println( “第二”);。

想想这段代码想要实现的目标(我们将两个已排序的数组合并到第三个也将排序的数组中),了解它在一个循环内,并且对于每个循环迭代,它都执行不同的操作根据条件阻止。

关于java - 控制 for 循环内的 if-else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22327338/

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