Kuinka muutan pseudokielellä yleispätevästi IF THEN ELSE ENDIF rakenteen WHILE ENDWHILE rakenteeksi.
esim
WHILE annettu nimi ei ole löytynyt AND lista ei ole loppu DO
ota listalta seuraava henkilö
IF uusi nimi = etsitty nimi THEN
ota henkilön osoite tästä listan kohdasta
ENDIF
ENDWHILE
ylläoleva IF THEN rakenne kahdella WHILELLÄ???
(sisennykset saattoivat muuttua viestiä lähetettäessä)
esim
WHILE annettu nimi ei ole löytynyt AND lista ei ole loppu DO
ota listalta seuraava henkilö
IF uusi nimi = etsitty nimi THEN
ota henkilön osoite tästä listan kohdasta
ENDIF
ENDWHILE
ylläoleva IF THEN rakenne kahdella WHILELLÄ???
(sisennykset saattoivat muuttua viestiä lähetettäessä)
Vastaukset 2
Vanhimmat
while on silmukkarakenne ja if-then-else on ehtorakenne.
Tuon tapaisen systeemin vois tehdä esim jotenkin näin. Ajattele vaikka että tuo otaseuraava palauttaa jonkun henkilön tietueen tai vastaavan.
while seuraava=otaseuraava()
if seuraava.nimi = etsittynimi then
teejotain
end if
end while
Luuppirakenteita on pääsääntöisesti 2 puhdasta luuppia.
1. luuppi suoritetaan 0 - n kertaa
-------
aseta lista alkuun
ota listalta seuraava henkilö
WHILE nimi = annettunmi AND lista ei ole loppu DO
ota henkilön osoite tästä listan kohdasta
ota listalta seuraava henkilö
ENDWHILE
--------
tässä tapauksessa vertailu suoritetaan ensimmäisellä luupin rivillä (WHILE lauseessa)
2. Luuppi suoritetaan 1 - n kertaa
eli ainakin kerran
--------
DO
...... Tee jotain
WHILE Ehto = tosi
--------
Vertailuehto on siis luupin lopussa ja jatkaa eteenpäin jos ehto on epätosi
Zjei