Java模数运算符奇怪地表现为if条件

时间:2015-04-06 06:06:03

标签: java modulus

嘿伙计们,如果条件允许我有以下内容......

//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 + " ";
};

前两个条件始终为真,我给出了测试输入。

发生的事情是模块条件i%spaceIn==0在报告时没有报告为真。

示例当i为3且spaceIn为3 i%spaceIn = 0如果条件有效。

当我达到6时,我可以看到(从system.out进一步),答案是0,它不会触发if条件。

当i = 12时,有时也不会这样做!

太奇怪了。

我在整个循环中打印出i%spaceIn的答案,即使答案是0,每3的倍数出现它有时不会触发if条件。

同样的事情,如果spaceIn是5.它跳过10.它的数字似乎只是有时无缘无故跳过。

我缺少什么?

1 个答案:

答案 0 :(得分:-2)

使用以下代码...... 你已经终止了if块...它可能会导致问题......

if (i!=0 && spaceIn>0 && i%spaceIn==0) {
System.out.println("Converted Letter : " + curLtr + " at position " + i + " Needs a space");
curLtr = curLtr + " "; }

我希望它可能适合你,因为它在我的机器上运行良好....