Article View: es.comp.os.linux.programacion
Article #6889Re: Romper 2 bucles a la vez en C
From: Horacio Miranda
Date: Fri, 02 May 2003 13:57
Date: Fri, 02 May 2003 13:57
67 lines
3781 bytes
3781 bytes
Vuelvo a mencionar, creo que ese bloque de c�digo debiera ser una funcion de
esa manera poner un return o un exit(0) para que se salga del buble completo.
Samuel ha escrito:
> El Fri, 2 May 2003 04:30:34 +0200, desorden
> <nedrosed@yahoo.es> dijo:
> > En el siguiente art�culo, Seba F escribi�:
> >>
> >> No estoy de acuerdo con esto de tomar como un pecado mortal el uso del
> >> goto, ademas como dijeron en el mail anterior el uso del break, es un
> >> uso del goto camuflado. En algunos tipos de algoritmos un buen uso del
> >> goto disminuye considerablemente la cantidad de lineas de codigo y
> >> hasta hace mucho mas comprensible al algoritmo.
> >> Siempre y cuando tengamos en cuenta que el uso de case, break y goto
> >> no son eficientes a nivel compilacion, en determinadas situaciones su
> >> uso es razonable y pr�ctico.
> >>
> >
> > Depende del tipo de programaci�n, �no? En programaci�n estructurada los
> > bloques de c�digo se tienen que recorrer desde la primera l�nea hasta la
> > �ltima.
> >
> > Programar usando la sentencia goto est�... �anticuado?
> >
> > Un saludo...
>
> No si ya sab�a yo que �sto iba a salir ;-) ...
>
> Lo que est� anticuado es decir que "el goto est� anticuado" (ya ha
> llovido desde el "goto" considered "harmful"). Es l�gico
> que cada funci�n o bucle tenga _un solo punto de entrada_, pero lo que
> no lo es, es que tambi�n tenga que tener _un solo punto de salida_. De
> hecho en estos dos casos se usa return y break para salir y es m�s
> claro, m�s sencillo(KISS) y m�s eficiente.
>
> Para el caso de los dos bucles la soluci�n ideal es la de Perl, que te
> permite etiquetar los bucles y usarlos desde el next y last(equivalentes
> a continue y break).
>
> OUTER: for(;;){
> INNER: for(;;){
> ...
> last OUTER;
> }
> }
>
> El otro caso donde se suele usar el goto (y mucho), es en el manejo de
> situaciones de error (situaci�n que el propio Dijikstra admite en su
> "Goto Considered Harmful"). De nuevo, las situaci�n que resuelve eso de
> manera adecuada son las excepciones...
>
> Pero C no tiene ninguna de estas dos posibilidades, as� que o usas goto,
> o haces virguer�as. Es mi opini�n.
>
> Saludos
>
> Samuel
>
> --
> Samuel Mo�ux Salvador
> PGP Key pgp.rediris.es ----- KeyID 0x822583C2
--
Atte, Horacio Miranda Aguilera
PostgreSQL. Because life's too short to learn Oracle. :)
Technical Details
Message-ID:
<3EB27946.CA3418CD@yale.cl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!snoopy.risq.qc.ca!newsfeed.news2me.com!newsfeeds.sol.net!nntp1.roc.gblx.net!nntp.gblx.net!nntp.gblx.net!nova.entelchile.netReferences:
<b8n8kd$bm3re$1@ID-146085.news.dfncis.de> <slrnbaur1q.ih.444398NOSPAM@tizona.dummy.net> <20030430205521.487.2.NOFFLE@BlackSpark.local> <403d26cd.0305011347.576e901e@posting.google.com> <slrnbb3m2a.q4.nedrosed@debianedrosed.org> <slrnbb48en.si.444398NOSPAM@tizona.dummy.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,d2bd500edfc3d6fa X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-05-02 21:03:29 PST Message-ID: <3EB27946.CA3418CD@yale.cl> Date: Fri, 02 May 2003 09:57:26 -0400 From: Horacio Miranda <hmiranda@yale.cl> X-Mailer: Mozilla 4.78 [es] (Win98; U) X-Accept-Language: es MIME-Version: 1.0 Newsgroups: es.comp.os.linux.programacion Subject: Re: Romper 2 bucles a la vez en C References: <b8n8kd$bm3re$1@ID-146085.news.dfncis.de> <slrnbaur1q.ih.444398NOSPAM@tizona.dummy.net> <20030430205521.487.2.NOFFLE@BlackSpark.local> <403d26cd.0305011347.576e901e@posting.google.com> <slrnbb3m2a.q4.nedrosed@debianedrosed.org> <slrnbb48en.si.444398NOSPAM@tizona.dummy.net> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit NNTP-Posting-Host: 200.72.213.105 X-Original-NNTP-Posting-Host: 200.72.213.105 X-Trace: nova.entelchile.net 1051886934 200.72.213.105 (2 May 2003 10:48:54 -0400) Lines: 69 X-Original-NNTP-Posting-Host: 200.72.213.105 Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!snoopy.risq.qc.ca!newsfeed.news2me.com!newsfeeds.sol.net!nntp1.roc.gblx.net!nntp.gblx.net!nntp.gblx.net!nova.entelchile.net