是否可以在kotlin循环中连续运行n次?
示例:
for(i in 0..10){
if(condition){
//continue n times
}
}
由于i
出于某种原因,我似乎无法在循环中重新初始化它。
从注释中建议改为使用while循环,那会更适合使用这样的while循环吗?
var i: Int = 0
while(i <= amountOfIterations){
//logic
if(condition){
i += amountOfContinues
}
i++
}
我的问题简直是一团糟。我正在尝试在Kotlin中构建一个android二进制计算器应用程序,目标是学习kotlin和二进制计算。这是给我带来麻烦的功能
fun subtract(minuendString: String, subtrahendString: String): IntArray {
var minuend = binaryStringToArray(minuendString)
var subtrahend = binaryStringToArray(subtrahendString)
if (subtrahend[subtrahend.size - 1] == 1 && minuend[minuend.size - 1] == 0 ||
subtrahend.size > minuend.size
) {
return IntArray(0)
}
var sum = IntArray(subtrahend.size)
var beginSearchIndex: Int = 0
var endSearchIndex: Int = 0
var searchSpan: Int = 0
for (i in 0..subtrahend.size - 1) {
if (minuend[i] == subtrahend[i]) {
sum[i] = 0
} else if (subtrahend[i] == 0 && minuend[i] == 1) {
sum[i] = 1
} else {
beginSearchIndex = i
for (j in i..minuend.size - 1) {
if (minuend[j] == 1) {
minuend[j] = 0
endSearchIndex = j - 1
searchSpan = endSearchIndex - beginSearchIndex + 1
break
}
}
var tempSubtrahend = IntArray(searchSpan)
var tempMinuend = IntArray(searchSpan)
for (k in i..endSearchIndex) {
tempMinuend[k] = minuend[k]
if (subtrahend.getOrNull(k) == null ||
subtrahend.getOrNull(k) == 0
) {
tempSubtrahend[k] = 0
} else {
tempSubtrahend[k] = 1
}
}
sum[i] = 1
for(v in 1..tempSubtrahend.size-1){
if(tempSubtrahend[v] == 1){
sum[v] = 0
} else {
sum[v] = 1
}
}
//continue searchSpan - 1 amount of times
}
}
for(i in subtrahend.size..minuend.size-1){
sum[i] = minuend[i]
}
return sum
}
我要从textviews中获取两个字符串,它们代表二进制值。我将它们转换为IntArrays,我的目标是创建一个IntArray总和作为减法之和。 该方法正在执行实际的减法运算,当减去二进制数时,有时必须向减数中借入一些索引,并且这有一些逻辑,需要我做一个嵌套循环,以完成一些逻辑,并在主循环中进行一些迭代。
我的问题集中在主循环的逻辑上。我不确定是否可以跳过嵌套循环已完成逻辑的迭代。
该功能不完整,仅根据要求添加。该功能不是问题的基线。
答案 0 :(得分:3)
repeat(n){
blah()
}
将执行blah()
n
次。