使用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);它成功地完成了,但错误出现了,因为翻转小于金额。任何帮助都会很棒!
答案 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;
}
但它绝对闻起来像家庭作业......