Newsgroup: it.comp.lang.pascal
Titolo: Uscita dai cicli

Buon venerdi a tutti,
da circa una settimana sto' facendo ripetizioni a mio cugino sul Pascal
(ha preso il debito in seconda superiore) e non mi ricordo se in Pascal ci
sono (e come sono) i comandi per uscire dai cicli for, repeat-until,
while-do.
In VB so che sono exit for oppure exit sub, ecc a in PAscal?
mi potete aiutare?
grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 mi potete aiutare?
-----------taglio--------
ciao
------------
repeat
begin
i:=i+1;
until i=20 ;// finisce il ciclo;
---
repeat
begin
i:=i+1;
if i=10 then exit;//esce dal ciclo (e và in motorino :P)
until i=20;
---
bye
erik

> if i=10 then exit;//esce dal ciclo (e và in motorino :P)
in realta' Exit e' usato per uscire dal blocchi begin-end generici,
mentre per uscire dai cicli va utilizzato Break.
i.e.
{ ciclo scemo }
repeat
 if x >3 then Exit else x := x + 1;
until keypressed;
l'exit non esce dal ciclo ma dal blocco che _contiene_ il ciclo,
e se si trova nel main il programma termina !!
function faiqualcosa(n : byte);
 begin
  if n = 0 then exit;
  {fai qualcosa}
 end;
in questo caso exit permette di levarsi velocemente dalla
procedura.   Di solito per l'uso di break o exit puo' essere
evitato complicando un poco l'espressione a guardia del
ciclo... alcuni prof vedono male i loro l'uso indiscriminato.
-- 
Dreadnaut
(Life would be easier if I had the source code)
 
http://dreadnaut.servebeer.com/

ciclo... alcuni prof vedono male i loro l'uso indiscriminato.
A dire il vero lo vedono male . e basta.
1 solo exit o break puo' anche far saltare un esame o un
compito in classe  per non parlare dei goto :D
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
ICQ     : 67552596
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

 mentre per uscire dai cicli va utilizzato Break.
per uscire dalla singola iterazione del ciclo e ritornare alla valutazione
della condizione di uscita
esiste la parola "continue"

 esiste la parola "continue"
ovvero:
Repeat
write('Continuare?[SN]');
readln(var);
until var='n';
? :)
--
=Omega======================
"Hands On"
============================

 ? :)
no, ovvero:
Repeat
write('Continuare?[SN]');
..
..
..
readln(var);
if var>3 continue;
..
..
..
until var='n';

 compito in classe  per non parlare dei goto :D
Sono del tutto concorde!
D'altronde se qualcuno si è sbattuto per inventare un linguaggio
strutturato, il caro prof. Wirth nella fattispecie, proprio per evitare il
vecchio metodo "a spaghetti" con i costrutti di trasferimento e numeri di
riga/etichette che rendevano il codice illeggibile *un motivo pure ci sarà*
Se io nel compitino di informatica mettevo goto o exit la professoressa la
volta dopo non è che mi dava un brutto voto, mi gettava direttamente fuori
dalla finestra di mano sua!!! :))
I trasferimenti si imparano bene quando è ora di usare un qualsiasi
assembler per una qualsiasi CPU
saluti
Fabio

 sarà*
Eppure gli spaghetti program sono cosi' belli, e poi perche' mai il codice
dovrebbe essere leggibile , l'importante e' che funzioni =)
ps = JMP , l'opcode per veri uomini =)
-- 
Qualsiasi
"We all know Linux is great...it does infinite loops in 5 seconds." Torvalds

> ps = JMP , l'opcode per veri uomini =)
LOL :)))

> con i costrutti di trasferimento
ma non erano salti incondizionati?

 compito in classe  per non parlare dei goto :D
Allora il professore non ha capito un ca**o.
È il GOTO che non va mai usato. Break, exit e continue sono 
perfettamente legali e non complicano in nessun modo la comprensione di 
un sorgente.
Ciao,
   Luca

 ha scritto nel messaggio
news:bfcg8o$ddai9$1...@ID-99001.news.uni-berlin.de...

confermo

 un sorgente.
che siano legali nessuno lo nega, solo che spesso sono utilizzati
a sproposito :-)   Un prof che cazzia tutti i break e' ignorante,
uno che cazzia quelli superflui fa' solo che bene :-)
-- 
Dreadnaut
(signless perche' in trasferta)


wrote:

Il Break, Exit e il Continue per un prof sono equivalenti a un GOTO
visto che tutti e 4 rompono il normale flusso del programma e fanno
"cose strane".
Il linguaggio pascal si presta bene a essere schematizato con il
diagramma di lusso dove ogni blocco ha 1 entrata e 1 uscita
con i goto, e co sconvogli il raporto 1:1
cmq tutto è possibile ( se no non esisterebbero ) e pure possibile
fare delle if per evitarli...


 fare delle if per evitarli...
Il goto è stato mantenuto per ragioni di compatibilità con vecchi 
software... si era pensato di eliminarlo dal Pascal (proprio perché così 
tanto usato nel mondo accademico), ma visto che tanti software 
commerciali usavano (anche a sproposito) i goto si è voluto mantenerlo 
per ragioni di compatibilità e storiche.
Non si è mai nemmeno lontanamente pensato di eliminare i break, i 
continue e gli exit proprio perché non "rompono" la logica del programma.
Ciao,
   Luca

 diagramma di flusso dove ogni blocco ha 1 entrata e 1 uscita
Un if-then-else quante uscite ha?


Un if-then-else quante uscite ha?
1
                     |
                     /\
                   /    \
      then    /      \    else
      --------  cond  ----------
      |           \      /              |
      |             \  /                |
      |              \/                 |
 ----------                      --------
 |  istr.  |                     | istr. |
 ----------                     ---------
      |                                 |
      ----------------------------
                     |
( che schifo di schema ! )


>Un prof che cazzia...
...č un deficiente.

 "cose strane".
Assolutamente no. Tant'è che il break ed il continue si usano spesso anche
nella programmazione OO in java.