I am teaching a simple comparisons on programming, but I have found something odd when I am trying to list all the natural numbers below 10 that are multiples of 3 or 5, when I add the following conditions the number 0 is added, even when specifically is conditional to add numbers if they are different from 0, I have already made invalidate caches and restart to Android Studio. Am I missing something here? Below is the code
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")
}
2
Answers
The only bug is in your boolean expression:
Given
i=0
This is basic Bool’s arithmetic:
false or true => true
and hence will execute your if’s blockAdding parenthesis might help you get the desired outcome:
This will evaluate to 0
executing your
which will add
0
I’d suggest add another condition to continue the loop when
i == 0
prints: