Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

824
Views
¿Cómo puedo implementar un ciclo 'Do while' solo usando GOTO en el lenguaje C?

¿Cómo puedo implementar un ciclo do- while solo usando sentencias goto?

 do{ // Some code } while ();

Me gusta esto, pero solo usando goto para crear el equivalente de eso.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

do{ // Some code } while (condition);

es igual a:

 label: { // Some code } if(condition) goto label;
over 4 years ago · Santiago Trujillo Report

0

Un bucle do- while es una variación de un bucle while . La condición se verifica mediante un ciclo while y las declaraciones están en el segmento do .

El bucle do while comprueba la condición al final del bucle. Esto significa que las declaraciones dentro del cuerpo del bucle se ejecutarán al menos una vez, incluso si la condición nunca se cumple.

La variable dentro del ámbito del ciclo. Es decir, debe estar dentro del bucle para acceder a él. Es lo mismo que si declararas una variable dentro de una función, solo las cosas en la función tienen acceso a ella.

 do{ statement(s); }while(condition);

En lugar de usar un ciclo for , while o do while, puede hacer el mismo trabajo usando goto. Me gusta esto:

 int i = 0; firstLoop: printf("%d", i); i++; if(i<10) goto firstLoop; printf("\nout of first loop");

Pero se sugiere no usar sentencias goto. El objetivo que logra al usar la declaración goto, se puede lograr más fácilmente usando otras declaraciones condicionales como if-else , etc.

over 4 years ago · Santiago Trujillo Report

0

Es fácil de hacer.

Para empezar, debe tener en cuenta que el cuerpo de la declaración do-while forma un ámbito de bloque incluso si el cuerpo no está representado por una declaración compuesta. Por ejemplo este programa es correcto.

 #include <stdio.h> int main(void) { struct A { int s; }; do printf( "sizeof( struct A { int x; int y; } ) = %zu\n", sizeof( struct A { int x; int y; } ) ); while ( sizeof( struct A ) == 8 ); printf( "sizeof( struct A ) = %zu\n", sizeof( struct A ) ); return 0; }

La salida del programa es

 sizeof( struct A { int x; int y; } ) = 8 sizeof( struct A ) = 4

Es decir, la estructura A declarada en la subsentencia de la instrucción do-while está en su propio ámbito interno en relación con el ámbito donde se escribe la instrucción do-while y donde se define la estructura A con un miembro de datos. Y cada vez que la subdeclaración obtiene el control, la estructura A se declara de nuevo.

La instrucción do-while reescrita usando una instrucción goto tendrá el siguiente aspecto, como se muestra en el programa de demostración a continuación. En este caso, debe usar una declaración compuesta para introducir el alcance interno.

 #include <stdio.h> int main(void) { struct A { int s; }; L1: { printf( "sizeof( struct A { int x; int y; } ) = %zu\n", sizeof( struct A { int x; int y; } ) ); } if ( sizeof( struct A ) == 8 ) goto L1; printf( "sizeof( struct A ) = %zu\n", sizeof( struct A ) ); return 0; }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!