Raku kurss / Padziļināti / Izpildes plūsma

given un when

Kad programmai jāizvēlas starp vairākām alternatīvām, if un elsif pārbaužu ķēde var kļūt gara un atkārtojoša. Šādā situācijā given/when konstrukcija bieži vien ir skaidrāka. Tā ir līdzīga switch priekšrakstam, kas sastopams citās programmēšanas valodās.

given bloks pieņem vērtību un padara to par tēmu — īpašo mainīgo $_. Katrs when bloks tiek salīdzināts ar šo tēmu, un pirmais, kas atbilst, tiek izpildīts:

my $n = 2;

given $n {
    when 1 { say 'one' }
    when 2 { say 'two' }
    when 3 { say 'three' }
}

Šī programma izdrukā:

two

Atšķirībā no switch dažās citās valodās, šeit nav “caurkritšanas” (fall-through): tiklīdz kāds when atbilst, tā bloks tiek izpildīts un given bloks ir pabeigts. Pārējie when bloki netiek pārbaudīti.

default bloks

default bloks tiek izpildīts, ja neviens no when blokiem neatbilda. Tam ir tāda pati loma kā else atzaram if priekšrakstā:

my $n = 5;

given $n {
    when 1 { say 'one' }
    when 2 { say 'two' }
    default { say 'many' }
}

Tā kā $n nav ne 1, ne 2, programma izdrukā:

many

Arī šajā sadaļā

Prakse

Jūs gaida 1 viktorīna par šīs sadaļas saturu.

Vingrinājumi

Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.

  1. Dzīves posms pēc vecuma
  2. Pāra, nepāra vai nulle
  3. Salīdzināt pēc tipa

Kursa navigācija

Viktorīna — LEAVE   |   Diapazonu, tipu un nosacījumu salīdzināšana