Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Alternativa a goto

Estas en el tema de Alternativa a goto en el foro de C/C++ en Foros del Web. Hola buenas, resulta que estaba realizando un ejercicio en el que se tiene un numero de partida (ejemplo 30) y entre 2 jugadores se van ...
  #1 (permalink)  
Antiguo 28/02/2011, 11:22
Avatar de spyker1925  
Fecha de Ingreso: febrero-2011
Mensajes: 37
Antigüedad: 13 años, 2 meses
Puntos: 0
Alternativa a goto

Hola buenas, resulta que estaba realizando un ejercicio en el que se tiene un numero de partida (ejemplo 30) y entre 2 jugadores se van dando valores y el que llege a 1 pierde. Pues no se como en la parte de si el numero es mayor o menor, que utilizar envez de goto para que vuelva al principio.
Código PHP:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n1=30;
int pjugador(){
                
int a;
                
principio:
                
printf("Primer jugador: ");
                
scanf("%d", &a);
                if (
a>9){printf("No se permite mas de 9\r\n"); goto principio;}
                else if (
a<1){printf("No se permite menos de 1\r\n"); goto principio;}
                return 
a;
}

int sjugador(){
                
int b;
                
principio:
                
printf("Segundo jugador: ");
                
scanf("%d", &b);
                if (
b>9){printf("No se permite mas de 9\r\n"); goto principio;}
                else if (
b<1){printf("No se permite menos de 1\r\n"); goto principio;}
                 return 
b;

  #2 (permalink)  
Antiguo 28/02/2011, 13:37
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Alternativa a goto

Código C++:
Ver original
  1. int pjugador(){
  2.                 int a;
  3.                 while (1) {
  4.                     printf("Primer jugador: ");
  5.                     scanf("%d", &a);
  6.                     if (a>9) printf("No se permite mas de 9\r\n");  
  7.                     else if (a<1) printf("No se permite menos de 1\r\n");  
  8.                     else return a;
  9.                }
  10. }

El while es un bucle. Mientras la condicion sea verdadera continua el bucle. En este caso el 1 es la condicion y siempre la hace verdadera. Asi que siempre estara en el bucle a menos que se ejecute el return (que hace que se vaya de la funcion).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.