x64 visual todos studio redist microsoft los library descargar c++ visual-studio visual-studio-2015

todos - visual c++ 15 runtime



¿Por qué el programa siempre devuelve "falso"? (1)

¿Por qué este código siempre devuelve ''falso'' y activa el goto incluso cuando escribo un dígito? ¿Alguien puede ayudarme por favor? ¡Gracias!

char userValue = ''4''; auto h = true; tryAgain: std::cout << "Please type a digit: "; std::cin >> userValue; switch (userValue) { case ''0'': case ''1'': case ''2'': case ''3'': case ''4'': case ''5'': case ''6'': case ''7'': case ''8'': case ''9'': h = true; default: h = false; } switch (h) { case true: std::cout << "This character is a digit."; case false: std::cout << "Wrong! Try again!" << std::endl; goto tryAgain; }


Simplemente se olvidó de salir del caso si se ha procesado. De esta forma, se resolverá el caso y manejará el caso false vez que se haya manejado el caso true .

switch (h) { case true: std::cout << "This character is a digit."; break; case false: std::cout << "Wrong! Try again!" << std::endl; goto tryAgain; //not necessarily needed because goto leaves the scope anyway. //break; }

El mismo problema aquí, quiebre si no quiere detener la caída:

switch (userValue) { case ''0'': case ''1'': case ''2'': case ''3'': case ''4'': case ''5'': case ''6'': case ''7'': case ''8'': case ''9'': h = true; break; default: h = false; break; }