Java 为什么这段代码使用if语句而不是while循环? public void timerCallback() { 如果(计数
它的工作原理是将语句打印8次(延迟),然后终止程序。现在:Java 为什么这段代码使用if语句而不是while循环? public void timerCallback() { 如果(计数,java,if-statement,interface,while-loop,hardware-interface,Java,If Statement,Interface,While Loop,Hardware Interface,它的工作原理是将语句打印8次(延迟),然后终止程序。现在: public void timerCallback() { if (count < 8) { System.out.println("My timer woke up!"); this.setOutputState(this.pinNumber, this.pinState); this.pinState = !this.pinState; this.
public void timerCallback()
{
if (count < 8)
{
System.out.println("My timer woke up!");
this.setOutputState(this.pinNumber, this.pinState);
this.pinState = !this.pinState;
this.setTimer(this.timerDelay);
count++;
}else
{
this.stopMonitoring();
}
}
public void timerCallback()
{
而(计数<8)
{
System.out.println(“我的计时器醒了!”);
this.setOutputState(this.pinNumber,this.pinState);
this.pinState=!this.pinState;
this.setTimer(this.timerDelay);
计数++;
}
这是停止监视();
}
该代码一次只打印语句8次,然后终止。为什么呢 原始版本中的
if/else
的目的是在调用stopMonitoring()
之前,为计时器提供八次“唤醒”和切换pin状态的机会。打印消息是次要的。因此,if/else
检查timerCallback()
是否已被调用8次。如果没有,好的,打印消息,再给它一次机会
通过在期间替换
,您只需打印消息8次,快速来回切换pin状态而不检查是否有帮助,然后进入停止监视()。因此,在第一次调用timerCallback()
,而不是第八次调用后,您将停止监视。第一个示例的可能重复要求对“My timer Waked!”的每个输出调用timerCallback()
,而您的第二个示例则在一个调用timerCallback()
的循环内完成监视while
将继续重新执行以下语句或块,直到条件失败<如果条件为真,则代码>如果
仅执行一次块。您需要知道如果
和之间的区别,而…这里有一个提示。。。何时调用timerCallback()
?看起来您希望在停止监视()之前调用它8次,那么是什么让它被调用8次呢?这不是递归问题的重复。这个问题是关于触发回调的。这里没有递归。(尽管由于
而
/如果
混淆,它确实有一些相似之处…)
public void timerCallback()
{
while (count < 8)
{
System.out.println("My timer woke up!");
this.setOutputState(this.pinNumber, this.pinState);
this.pinState = !this.pinState;
this.setTimer(this.timerDelay);
count++;
}
this.stopMonitoring();
}