NXC instrukcje warunkowe i pętle

Z Systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania

Instrukcje warunkowe

Jak w innych lekcjach dotyczących NXC zakładam, że znasz C. Dlatego nie tłumaczę wszystkiego.

IF

if (warunek) instrukcja

Instrukcja jest wykonywana tylko jeśli warunek jest prawdziwy.

Przykład:

task main()
{
if (Random(2)> 0) PlaySound(SOUND_DOUBLE_BEEP);
}

Random(2)Losuje liczbę z zakresu 0-2

PlaySound(SOUND_DOUBLE_BEEP)Podwójny brzęczyk

Ten prosty program wydaje podwójny brzęk, jeśli (IF) wylosowana liczba jest większa od zera.

IF ELSE

if (warunek) instrukcja1 else instrukcja2

Jeśli spełniony jest warunek wykonywana jest instrukcja, w przeciwnym razie (ELSE) wykonywana jest instrukcja alternatywna.

Przykład:

task main()
{
if (Random(2)> 0)
       PlaySound(SOUND_DOUBLE_BEEP);
     else
       PlaySound(SOUND_LOW_BEEP);
}

Jeśli (IF) wylosowano liczbę większą od zera gra podwójny brzęczyk, w przeciwnym razie (ELSE) słychać LOW_BEEP.

Pętle

WHILE

while (warunek) instrukcja

Pętla działa tak długo, jak długo spełniony jest warunek.

Przykład:

task main()
{
while (true)
      {
      PlaySound(SOUND_DOUBLE_BEEP);
      }
}

W tym akurat przypadku pętla będzie nieskończona, gdyż warunek zawsze jest prawdziwy while (true)

DO WHILE

do instrukcja while (warunek)

Przykład:

task main()
{
do
  {
  PlaySound(SOUND_DOUBLE_BEEP);
  } while(Random(10) < 7);
}

W wyniku tego programu brzęczyk działa dopóki nie zostanie wylosowana liczba < 7.

FOR

for(instrukcja1 ; warunek ; instrukcja2) ciąg instrukcji

Przykład:

task main()
{

for (int i=0; i<11; i++)
    {
    NumOut(0, LCD_LINE1, i);
    Wait(1000);
    }
}

for (int i=0; i<11; i++)przypisuje do zmiennej i wartość 0, wykonuje ciąg instrukcji między { } tak długo aż i < 11, i++ odpowiada za zwiększanie i o jeden przy każdej nowej pętli.

NumOut(0, LCD_LINE1, i)Wyświetla w pierwszej linii wartość i.

Wynikiem tego kodu jest wyświetlanie wartości i, czyli od 0 do 10, z przerwami 1 sekundowymi.

REPEAT

repeat (wyrażenie) ciąg instrukcji

Przykład:

task main()
{
int i=0;
repeat (11)
       {
       NumOut(0, LCD_LINE1, i++);
       Wait(1000);
       }
}

Działa analogicznie jak wcześniejszy przykład. Wyświetla wartość i, czyli początkowo 0. Czynność jest powtarzana (repeat) 11 razy, przy każdej pętli wartość i zwiększana jest o 1. W rezultacie wyświetla liczby od 0 do 10.