2016-10-28 10 views
0

私は外出先では全く新しく、練習のためにいくつかの簡単なアプリケーションを書くことにしました。かなり速い私は奇妙な問題になった:if条件のII演算子が奇妙に動作する

明らか
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だけで割り切れるかどうかをチェックするとうまくいきます...

+0

ああで見てみましょう。私が持っている問題は 'II'です - 私は何が起こっているのかを調べようとしていたので、偶然にのみビットORで貼り付けました。 – Moby04

+2

どのように定義されていますか? – Tinwor

答えて

0

if文に|の代わりに||を使用してください。

|| は「論理的に」、つまりあなたが望むものです。

問題を修正した後は、比較対象の「i」変数も「j」に変更してください。

+0

ああ、申し訳ありません。私が持っている問題は 'II'です - 私は何が起こっているのかを調べようとしていたので、偶然にのみビットORで貼り付けました。 - – Moby04

1

私はどのように期待どおりに動作しますi変数を定義する方法を知っているが、jにそれを変更していない、申し訳ありませんが、このgo playground example

+0

イエス...あなたは「私」が外側のループにあり、ちょうどタイプミスであったと想像することができます:) – Moby04

+0

あなたの問題は解決しましたか? – neuhaus