|
'c -> 0; $ 0 ~ r (if (b) for (c \u003d b 1 c> 1 c -) print r [(NR-c 1)% b]; print c \u003d a ) b (r [NR% b] \u003d $ 0) '
har 3 mønster-aktion udsagn:
1) c -> 0;
2) $ 0 ~ r (if (b) for (c \u003d b 1 c> 1 c -) print r [(NR-c 1)% b]; print c \u003d a)
3) b (r [NR% b] \u003d $ 0)
Den første har ingen eksplicit handling, så den sag er ganske enkelt at udskrive hele record. Men i dette tilfælde semikolon er nødvendig, således at den ikke kører i den anden staement. Den anden erklæring har en eksplicit handling, som er i bøjler og bøjler er nok til at adskille den fra den tredje. Nu overveje disse erklæringer i omvendt rækkefølge ...
3) b (r [NR% b] \u003d $ 0)
Mønstret er b, der er spurgt, om b er lig med nul. Hvis b er ikke-nul vi nødt til at gemme poster i tilfælde har vi brug for dem senere. Men hvis b er nul, kan vi springe over dette, da vi ikke ønsker noget "før" poster vises. Hvis b er, siger, 5, vi vil altid have de sidste 5 poster i r array.
2) $ 0 ~ r (if (b) for (c \u003d b 1 c> 1 c -) print r [(NR-c 1)% b]; print c \u003d a)
Det mønster 0 $ ~ r blot spurgt, om posten matcher søgekriterierne vi gemt i s. Hvis det er tilfældet, og hvis b ikke er nul, udskriver vi disse registre, som vi har gemt i trin 3 ovenfor. Så kan vi udskrive den aktuelle post. Så c \u003d a nedsætter det næste skridt at forklare ...
1) c -> 0;
c bliver sat til en (antal "efter" records), når vi finder en match. The c - del formindskelser c efter vi bruger det. Og vi bruger det til at se, om det er større end nul. Dette er, hvordan den "efter" registreringer er trykt.
Senest redigeret af Perderabo; 01-17-2008 kl 08:34 AM.. Årsag: fix some typos
|