嗨我已經if條件下...Java的模運算符行爲異常爲if條件
//Add a space if necessary
if (i!=0 && spaceIn>0 && i%spaceIn==0) {
System.out.println("Converted Letter : " + curLtr + " at position " + i + " Needs a space");
curLtr = curLtr + " ";
};
1日2條件總是與測試輸入我給它正確的。
發生了什麼是模塊化條件i%spaceIn==0
不報告爲真時,它是。
當i爲3且spaceIn爲3時的示例如果條件有效,i%spaceIn = 0。
當我到達6甚至我可以看到(從system.out進一步)答案是0它不會觸發if條件。
有時它不是當我i = 12時也這麼做!
太奇怪了。
我打印出i%space的答案在整個循環中,即使答案是0,每3的倍數就有0個,它有時不會觸發if條件。
同樣的事情,如果spaceIn是5.它跳過10.它是什麼數字,它似乎只是跳過有時無緣無故。
我在想什麼?
把一些額外的代碼放在你定義你的i和spacelen的地方 – Pratik 2015-04-06 06:08:46
有沒有其他的線程改變這些值? – Maroun 2015-04-06 06:14:23
作爲一般性評論,在這樣的表達中額外的括號總是很好的,以便以何種順序來評估不同部分。 'if((i!= 0)&&(spaceIn> 0)&&(i%spaceIn == 0))'更好的可讀性。 – 2015-04-06 06:26:13