【发布时间】:2019-03-16 03:20:23
【问题描述】:
我是 Kotlin 的新手,正在尝试通过查看哪个数组的元素更大来比较两个数组的元素。数组是通过用户输入创建的。我遇到的错误是,当我重复包含第二个数组内容的第二个 for 循环(内循环)时,它不会像第一个 for 循环那样递增到第二个数组的下一个元素。因此,如果 a = {1,2} 和 b = {2,1},a 将通过 1 和 2 递增,但 b 将在循环的两次迭代中保持为 2。这是给我带来问题的函数:
fun practiceCompareArray(a: Array<Int>, b: Array<Int>): Array<Int> {
var j: Array<Int>
var aPoints = 0
var bPoints = 0
for (x:Int in a) {
---------> for (y: Int in b) {
if (x > y) {
aPoints++
} else if (x < y) {
bPoints++
break
}
}
j = arrayOf(aPoints, bPoints)
return j
}
带箭头的 for 循环给我带来了问题。我认为这是因为内部循环末尾的 break 语句。我什至需要内部循环来比较每个数组吗?任何帮助或文档都会有所帮助。
【问题讨论】:
-
您想逐个元素比较数组吗? IE。两者的第一个元素,然后是两者的第二个,等等?在这种情况下,请查看
zip。 -
没错。两者的第一个元素,然后是两者的第二个元素,等等。我会看看 zip 并在之后回复你!
标签: arrays for-loop if-statement kotlin