Título: Ayuda por favor con un switch con 3 cases Publicado por: suso teruel en 10 Julio 2012, 11:34 am Buenos días, Por favor a ver si me podeis ayudar con este código. Sobre todo cómo funcionan estos casos. La salida la conozco porque la he compilado, el problema como os comento es que no sé cómo van los casos. main(){ int i, x= 0, y=1; for(i=0; i<3; i++) { switch(i) { case 0: x=++y; break; case 1: case 2: x=y++; break; default: x+=3; } printf("%d,%d, \n", x, y); system("pause"); } } Gracias Título: Re: Ayuda por favor con un switch con 3 cases Publicado por: DickGumshoe en 10 Julio 2012, 13:19 pm ¡Hola!
Cuando pones x=++y, significa que primero incrementas en 1 a y, y después le asignas ese valor a x. Cuando pones x = y++, significa que primero le asignas el valor a x, y después incrementa y en 1. Al default nunca va a llegar en ese bucle, pero x+=3 es equivalente a x = x + 3. El case 1 no tiene nada, por lo que nunca llegará a hacer nada. Por ejemplo: int x = 2, y = 2; x = y++; // ahora x=2, y=3 x = ++y; //ahora x=4, y=4 x += 3; //ahora x=7 Saludos! Título: Re: Ayuda por favor con un switch con 3 cases Publicado por: do-while en 10 Julio 2012, 18:45 pm ¡Buenas!
El case 1 no tiene nada, por lo que nunca llegará a hacer nada. Eso no es correcto. Cuando una etiqueta dento de un switch no termina con break, las siguientes sentencias se siguen ejecutando hasta llegar a un break o al final del switch: Código
Si lo meteis en un for de 1 a 10 (o el intervalo que querais), vereis como funciona el codigo. ¡Saludos! Título: Re: Ayuda por favor con un switch con 3 cases Publicado por: suso teruel en 10 Julio 2012, 20:24 pm Muchas gracias por vuestra ayuda
Saludos, |