II运算符在if条件下工作奇怪

时间:2016-10-28 12:27:54

标签: go

我在go和练习方面都是全新的我决定写一些简单的应用程序。很快我遇到了奇怪的问题:

sum := 0
for j:= 0; j<10; j++ {
   if (j%5 == 0) || (i%3 == 0) {
      fmt.Println(j)
      sum += j
   }
}

显然,我想总结所有被5整除的数字或低于10的3。但是当我运行它时,我得到:

0
1
2
3
4
5
6
7
8
9
45

奇怪的部分是,如果我只检查3或仅5的可分性,它可以正常工作......

2 个答案:

答案 0 :(得分:1)

我不知道如何定义i变量,但将其更改为j它按预期工作,请看一下go playground example

答案 1 :(得分:0)

在if语句中使用||代替|

|| 是“逻辑的”或“你想要的。”

修复该问题后,还要将“i”变量更改为“j”,因为这是您想要比较的内容。