Java + малиновая программа про цикл с определенным временем - PullRequest
0 голосов
/ 24 мая 2018

Итак, прежде всего, я новичок в Java.В колледже мы программируем, используя raspberry pi 3 и Java NetBeans.

Я должен сделать светофор.Светофор должен работать в обычном режиме в течение 2 минут и 30 секунд.Затем он должен переключиться на мигающий желтый свет, который должен работать в течение 1 минуты, и после этого он должен выключиться.Для каждого источника света в обычном режиме нет определенного времени.Я должен написать этот код в те временные рамки, которые я написал выше:

// Normal mode for 2 minutes 30 seconds

red.on();

Thread.sleep(1000);

red.off();

Thread.sleep(100);

yellow.on();

Thread.sleep(1000);

yellow.off();

Thread.sleep(1000);

green.on();

Thread.sleep(1000);

green.off();

Thread.sleep(1000);

// Only yellow blinking for 1 minute

yellow.on();

Thread.sleep(1000);

yellow.off();

Thread.sleep(1000);

//Shutdown after 1 minute of yellow blinking

red.off();

yellow.off();

green.off();

Как мне поместить эти режимы в эти временные рамки?Я думал, что мог бы использовать цикл for для них, но не знаю, как установить правильное время, может быть, есть какие-то другие варианты, или кто-то может сделать это с помощью цикла for?

Извините, если некоторые предложениянеправильно, потому что английский не мой родной язык.

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете использовать цикл while.

// Normal mode for 2 minutes 30 seconds

int pauseTime = 1000
int normalElapsedTime = 0
int blinkingElapsedTime = 0

while (normalElapsedTime < (60000*2.5))
{
red.on();
Thread.sleep(pauseTime);
normalElapsedTime = normalElapsedTime  + pauseTime;

red.off();
Thread.sleep(pauseTime);
normalElapsedTime = normalElapsedTime  + pauseTime;

yellow.on();
Thread.sleep(pauseTime);
normalElapsedTime = normalElapsedTime  + pauseTime;

yellow.off();
Thread.sleep(pauseTime);
normalElapsedTime = normalElapsedTime  + pauseTime;

green.on();
Thread.sleep(pauseTime);
normalElapsedTime = normalElapsedTime  + pauseTime;

green.off();
Thread.sleep(pauseTime);
normalElapsedTime = normalElapsedTime  + pauseTime;
} //end while

// Only yellow blinking for 1 minute

while (blinkingElapsedTime < (60000*1))
{
yellow.on();
Thread.sleep(pauseTime);
blinkingElapsedTime = blinkingElapsedTime + pauseTime;

yellow.off();
Thread.sleep(pauseTime);
blinkingElapsedTime = blinkingElapsedTime + pauseTime;
} //end while

//Shutdown after 1 minute of yellow blinking

red.off();
yellow.off();
green.off();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...