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();
}
}
Это работает в том смысле, что он печатает инструкцию (с задержкой) 8 раз, а затем завершает работу программы. Теперь это:Почему этот код работает с оператором if, но не во время цикла?
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();
}
Этот код просто печатает заявление 8 раз подряд, а затем завершается. Почему это?
Возможный дубликат [Java: Recursion -While Loop Vs If Loop] (http://stackoverflow.com/questions/11840294/java-recursion-while-loop-vs-if-loop) – ericbn
Ваш первый пример требует, чтобы 'timerCallback()' вызывается для * каждого * вывода «Мой таймер проснулся!», тогда как ваш второй пример делает все это внутри цикла внутри * one * вызова 'timerCallback()'. 'while' будет продолжать повторять выполнение следующего оператора или блока до тех пор, пока условие не будет выполнено. 'if' только выполняет блок один раз, если условие истинно. – lurker
Вам нужно знать разницу между 'if' и' while' ... – ericbn