Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

825
Visualizações
¿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 Respostas
Responde à pergunta

0

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

es igual a:

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

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda