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

[SOLUCIONADO] bucle while mas sentencia if else duda

Estas en el tema de bucle while mas sentencia if else duda en el foro de C/C++ en Foros del Web. Código: #include <iostream> using namespace std; int main(){ float numero; float resultado; bool no_valida = false; while ( !no_valida ){ cout<<"Indica que numero quieres calcular: ...
  #1 (permalink)  
Antiguo 28/05/2014, 01:04
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta bucle while mas sentencia if else duda

Código:
#include <iostream>
using namespace std;

int main(){
	float numero;
	float resultado;
	bool no_valida = false;
	
	while ( !no_valida ){
	cout<<"Indica que numero quieres calcular: "<<endl;
	cin>>numero;
	resultado = numero*numero;
	
	if (numero != 0)
	   cout<<"El cuadrado de: "<<numero<<" es: "<<resultado<<endl;
	   //no_valida = true;
	   
	   else if (numero == 0)
	     cout<<"Error, Opcion no valida"<<endl;
	     no_valida = false;
	 }
return 0;
}
hola mi duda es por que cuando activo en la sentencia if la variable bool no_valida a true el programa me da erro en el else if,

Lo que quiero es que el programa se ejecute una vez si introduces un numero distinto de 0 y se cierre , si el numero es igual a cero que haga el bucle .
El programa tal como esta ahora hace el bucle metas lo que metas.

gracias de ante mano , un saludo

Última edición por jscmanuel; 28/05/2014 a las 01:15
  #2 (permalink)  
Antiguo 28/05/2014, 02:44
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: bucle while mas sentencia if else duda

Te falta englobar con llaves lo que sigue a if y a else.
Tal como lo tienes, la sentencia:
Código C++:
Ver original
  1. no_valida = false;
se ejecutará siempre.
  #3 (permalink)  
Antiguo 28/05/2014, 03:07
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: bucle while mas sentencia if else duda

#include <iostream>
using namespace std;

int main(){
float numero;
float resultado;
bool no_valida = false;

while ( !no_valida ){
cout<<"Indica que numero quieres calcular: "<<endl;
cin>>numero;
resultado = numero*numero;

if (numero != 0){
cout<<"El cuadrado de: "<<numero<<" es: "<<resultado<<endl;
no_valida = true;}

else if (numero == 0){
cout<<"Error, Opcion no valida"<<endl;
no_valida = false;}

}
return 0;
}
gracias dehm por la ayuda , ya lo e entendido , dejo el código por si alguien quiero verlo.
  #4 (permalink)  
Antiguo 28/05/2014, 03:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: bucle while mas sentencia if else duda

De nada.
Por cierto, te puedes ahorrar la última sentencia de
Código C++:
Ver original
  1. no_valida=false;
ya que no está actualizando ningún valor. Sólamente te interesa que si el número es !=0, poner "no_valida=true", como tienes puesto en la parte del "if" para salir del bucle.
Saludos!
  #5 (permalink)  
Antiguo 28/05/2014, 03:39
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: bucle while mas sentencia if else duda

gracias dehm , por el sugerencia. todo sea por optimizar el código. :)

Etiquetas: bucle, int, numero, programa, sentencia
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 13:49.