Red de conocimiento informático - Material del sitio web - ¿Cómo implementar la ejecución repetida de declaraciones del programa? (lenguaje C++)

¿Cómo implementar la ejecución repetida de declaraciones del programa? (lenguaje C++)

Categoría: Computadora/Red >> Programación >> Otros lenguajes de programación

Descripción del problema:

Mire el código:

# include

int main()

{

int hjsq, ljsq = 1, kgjsq, bc;

cout << "Ingrese la longitud del lado del cuadrado que se va a imprimir (nota: la longitud del lado no debe ser mayor que 20): " ;

cin >> bc ;

si ( antes de Cristo <= 20 )

{

para ( int hjsq = 1 ; hjsq <= antes de Cristo ; hjsq++ )

{

cout << "* " ;

}

hacer

{

cout << "\n*" ;

for ( int kgjsq = 1 ; kgjsq <= bc - 2 ; kgjsq++ )

{

cout << " " ;

}

ljsq++ ;

cout << "*" ;

}

mientras ( ljsq <= bc - 2 ) ;

cout << '\n' ;

for ( int hjsq = 1 ; hjsq <= bc ; hjsq++ )

{

cout << "*"

}

cout << '\n' ;

}

más

{

cout << "La longitud del lado es mayor que 20, ¡error de entrada! ¡Vuelva a ingresar!" << endl ;

cout << "Por favor ingrese la longitud del lado del cuadrado que se va a imprimir (nota: longitud del lado No mayor que 20): " ; Declaración A

cin >> bc ; Declaración B

}

devuelve 0;

}

Si no se agregan la declaración A y la declaración B, el programa se ejecutará normalmente sin ningún problema. Con estas dos declaraciones, mi intención original es volver a ingresar un valor calificado si la entrada es incorrecta y luego reiniciar la ejecución desde la declaración if, pero no sé qué declaración apropiada usar para lograr esta función, por favor, guía de expertos. ! ! ! No utilice declaraciones goto, ¡gracias! ¡50 centavos para dar! ! ! !

Análisis:

Uno: Acerca de su programa,

*Creo que la legibilidad no es buena: hjsq, ljsq, kgjsq, bc, estas variables son difíciles para adivinar lo que significa. Y no es necesario utilizar tantas variables.

*No hay nada de malo en las afirmaciones A y B. Estoy usando el compilador de Visual Studio y debe escribirse como . Además, los espacios de nombres a los que pertenecen cin y cout también deben declararse explícitamente (por ejemplo, se agrega el uso del espacio de nombres std después). la declaración #include). Después de cambiar estos dos puntos, el programa se ejecuta normalmente.

2: ¿Cómo volver a preguntar cuando el usuario ingresa incorrectamente?

while(bc>20){...Coloque este bucle delante del código de dibujo

...Solicite al usuario que vuelva a ingresar

... Aceptar la entrada del usuario antes de Cristo

}

... Dibujar un cuadrado

Tres: No es bueno usar la recursividad aquí. Porque reducirá en gran medida la eficiencia; esto se puede lograr mediante un bucle while. Aunque el uso de la recursividad no tendrá un gran impacto en este programa, debes desarrollar el hábito de considerar la eficiencia.

Cuatro: El siguiente es el código que escribí. Puedes comparar el tuyo.

#include

usando el espacio de nombres std;

int main()

{

unsigned short bianchang=0;

while((bianchang>20)||(bianchang<1)){

cout<<"Ingrese la longitud del lado del cuadrado (entre 1 y 20 enteros)"<

cin>>bianchang;

}

for(int i=1;i<=bianchang;i++) {

for(int j=1;j<=bianchang;j++){

Si está en el borde, imprima *, de lo contrario imprima un espacio

cout<< (((i==1)||(i==bianchang)||(j==1)||(j==bianchang))?'*':' ');

}

cout<

}

devuelve 0;

}