我正在嘗試解決需要在 while 回圈中輸入數字的問題。如果用戶輸入數字 0,回圈將停止。然后代碼應該給出最大數字的輸出。
import java.util.*
fun main() {
val scanner = Scanner(System.`in`)
var remainder = 0
val n = scanner.nextInt()
while (n != 0) {
var input = scanner.hasNextInt()
if (input > remainder) {
remainder = input
}
}
println(remainder)
}
但是當我嘗試運行代碼時,我收到此錯誤訊息:
Compilation error
main.kt:8:21: error: type mismatch: inferred type is Int but Boolean was expected
if (input > remainder) {
^
main.kt:9:25: error: type mismatch: inferred type is Boolean but Int was expected
remainder = input
^
uj5u.com熱心網友回復:
您收到錯誤,因為此方法scanner.hasNextInt()回傳一個布林值,并且您將布林值與整數值進行比較。
import java.util.*
fun main() {
val scanner = Scanner(System.`in`)
var remainder = 0
val n = scanner.nextInt()
while (n != 0) {
var input = scanner.nextInt()
if (input > remainder) {
remainder = input
}
}
println(remainder)
}
scanner.nextInt()如果您沒有收到任何字串或其他型別的輸入,則應該使用。如果您獲得任何其他型別的輸入,您可以使用scanner.hasNextInt()然后接受輸入。
uj5u.com熱心網友回復:
您還可以使用 Kotlin 的 readLine() 函式來獲取用戶輸入。代碼將是這樣的:
var answer = 0
while(true) {
val n = readLine()!!.toInt()
if(n == 0) break
answer = maxOf(answer, n)
}
println(answer)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/342583.html
下一篇:無法將反射場投射到地圖中
