我正在教一個關于編程的簡單比較,但是當我試圖列出所有低于 10 且是 3 或 5 的倍數的自然數時,我發現了一些奇怪的東西,當我添加以下條件時,添加了數字 0,即使特別如果數字不為 0,則添加數字是有條件的,我已經使快取無效并重新啟動到 Android Studio。我在這里錯過了什么嗎?下面是代碼
fun multiplesOf() {
val arrayOfSelected: ArrayList<Int> = arrayListOf()
for (i in 0..10) {
if (i != 0 && i % 3 == 0 || i % 5 == 0) {
arrayOfSelected.add(i)
}
}
Log.i("TAG", "multiplesOf: $arrayOfSelected")
}
uj5u.com熱心網友回復:
唯一的錯誤是在您的布爾運算式中:
給定i=0
i != 0 && i % 3 == 0 // this is false
||
i % 5 == 0 // this is true
這是基本的布爾演算法:false or true => true因此將執行你的 if 塊
添加括號可能會幫助您獲得所需的結果:
if ( i != 0 && (i % 3 == 0 || i%5 ==0) ) {...}
uj5u.com熱心網友回復:
這將評估為 0
i % 5 == 0
執行你的
arrayOfSelected.add(i)
這將添加0
我建議添加另一個條件以繼續回圈i == 0
if (i == 0) {
continue
} else {
if (i % 3 == 0 || i % 5 == 0) {
arrayOfSelected.add(i)
}
}
印刷:
multiplesOf: [3, 5, 6, 9, 10]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/518419.html
標籤:安卓安卓工作室科特林if 语句
上一篇:實時更改文本
