需要一些Java帮助

时间:2009-11-18 13:41:17

标签: java

使用if来模拟模数运算符

从NumberDisplay()类重写此increment()方法,而不使用%modulus运算符。

/** Increment the display value by one *  rolling over to zero if the limit is reached  */
public void increment() 
{
   if(value > limit);
   else
   value = (value + 1);
   value = 0;
}
好吧,我测试了这个,我把值=(值+ 1);它成功地完成了,但错误出现了,因为翻转小于金额。任何帮助都会很棒!

7 个答案:

答案 0 :(得分:8)

始终无条件地将0分配给值。你还有一个空的“if”语句,这不是一个好兆头 - 很难发现,因为你刚用过“;”而不是大括号。

这是用大括号重写的当前代码:

public void increment() 
{
   if(value > limit)
   {
   }
   else
   {
       value = (value + 1);
   }
   value = 0;
}

现在,我不会向您展示代码本身,而是给您两个提示:

  • 价值怎么会严格超过限额?
  • 如果它特别高,你为什么不想改变价值呢?你希望它变成什么样?

答案 1 :(得分:2)

不考虑代码语法等,尝试阅读你所说的内容,好像它是一个英文句子。这应该给你一些想法,例如:

如果该值大于限制,则......

答案 2 :(得分:1)

我建议您阅读如何正确撰写if statement

答案 3 :(得分:1)

提示:注意陌生地方的分号。

提示2:尝试将{}与if和else块一起使用,这将有助于您查看代码的逻辑。

答案 4 :(得分:0)

我不太确定你的问题或你的意思是什么“限制”完全,但我猜测(基于我期望mod运算符如何工作)也许你一个人走了?也许“> =”而不是“>”你正在寻找什么?

答案 5 :(得分:-1)

public void increment()
{
    value++;
    if(value >= limit)
        value = 0;
}

答案 6 :(得分:-2)

我猜你想要

public void increment() 
{
   if(value >= limit)
     value = 0;
   else
     value = value + 1;
}

但它绝对闻起来像家庭作业......