为什么这个 While 循环没有按预期工作?
Why doesn't this While loop work as intended?
大家好,这里是新手。一个问题,无法理解为什么即使我向变量 num 输入一个大于 9 的 int,while 循环也不起作用,while 循环应该重复自身直到表达式为假,但它没有,甚至没有输出.我在这里错过了什么吗?提前致谢。
fun main () {
while(true) {
println ("\nWrite a positive number: ")
var num = readLine()!!.toInt()
var sum = 0
if (num > 9) {
while (num > 9) {
var digit = num % 10
sum = sum + digit
num = num / 10
}
println("\nDigit Sum: $sum")
} else if (num in 1..9) {
println("\nDigit Sum for the number $num is $num")
} else {
println("\nInvalid input, try again.")
}
}
}
你不需要每次都重新声明变量
var sum = sum + digit
var num = num / 10
所以只需删除 var
sum = sum + digit
num = num / 10
问题是当最后一个 num
小于或等于 9 时,您没有对它求和。您甚至可以稍微简化您的代码。尝试以下操作:
fun main() {
while(true) {
println ("\nWrite a positive number: ")
val insertedNumber = readLine()!!.toInt()
var num = insertedNumber
var sum = 0
while (num > 9) {
val digit = num % 10
sum = sum + digit
num = num / 10
}
sum = sum + num
println("\nDigit Sum for the number $insertedNumber is $sum")
}
}
大家好,这里是新手。一个问题,无法理解为什么即使我向变量 num 输入一个大于 9 的 int,while 循环也不起作用,while 循环应该重复自身直到表达式为假,但它没有,甚至没有输出.我在这里错过了什么吗?提前致谢。
fun main () {
while(true) {
println ("\nWrite a positive number: ")
var num = readLine()!!.toInt()
var sum = 0
if (num > 9) {
while (num > 9) {
var digit = num % 10
sum = sum + digit
num = num / 10
}
println("\nDigit Sum: $sum")
} else if (num in 1..9) {
println("\nDigit Sum for the number $num is $num")
} else {
println("\nInvalid input, try again.")
}
}
}
你不需要每次都重新声明变量
var sum = sum + digit
var num = num / 10
所以只需删除 var
sum = sum + digit
num = num / 10
问题是当最后一个 num
小于或等于 9 时,您没有对它求和。您甚至可以稍微简化您的代码。尝试以下操作:
fun main() {
while(true) {
println ("\nWrite a positive number: ")
val insertedNumber = readLine()!!.toInt()
var num = insertedNumber
var sum = 0
while (num > 9) {
val digit = num % 10
sum = sum + digit
num = num / 10
}
sum = sum + num
println("\nDigit Sum for the number $insertedNumber is $sum")
}
}