Kotlin在Android Studio上安装了条件语句

iecba09b  于 2022-11-16  发布在  Android
关注(0)|答案(2)|浏览(143)

我正在教一个简单的比较编程,但我发现一些奇怪的东西,当我试图列出所有低于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")
    }
83qze16e

83qze16e1#

唯一的错误是在布尔表达式中:
给定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) ) {...}
ncecgwcz

ncecgwcz2#

这将计算为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]

相关问题