Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/08/2015, 13:51
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Por que mi codigo multiplica en lugar de sumar?

Hola:

Respecto a lo primero, pues si, no tiene mucho sentido distinguir si el saldoTotal es 0 o no.
Porque esto:
Código C++:
Ver original
  1. saldoTotal =  saldo;
y esto:
Código C++:
Ver original
  1. saldoTotal = saldo + saldoTotal;//saldoTotal = saldo + 0

Es lo mismo cuando saldoTotal es = a 0, luego no ha lugar la distinción.

Respecto a los if excluyentes....bueno, no sé si es muy correcto llamarlos así , pero más o menos:

Esta forma:
Código C++:
Ver original
  1. if(condicion)
  2. {
  3.     haz una cosa
  4. }
  5. if(otra condicion)
  6. {
  7.     haz otra cosa
  8. }

implica que lo que sea va a ser evaluado dos veces, primero para ver si cumple "condicion" y luego para ver si cumple "otra condicion". Es el caso de tu código.

Por otro lado, si hago así:
Código C++:
Ver original
  1. if(condicion)
  2. {
  3.     haz una cosa
  4. }
  5. else if(otra condicion)
  6. {
  7.     haz otra cosa
  8. }
La segunda condición no se evaluará si se ha cumplido la primera.
Y queda:
Código C++:
Ver original
  1. if(condicion)
  2. {
  3.     haz una cosa
  4. }
  5. else
  6. {
  7.     haz otra cosa
  8. }

En este caso se ejecutará el bloque después del else si no se cumple la primera condición.

Mira este ejemplo:
Código C++:
Ver original
  1. int main()
  2.     {
  3.         int num=100;
  4.         if (num==100)
  5.         {
  6.             cout<<"numero = 100"<<endl;
  7.         }
  8.         if (num>50)
  9.         {
  10.             cout<<"numero > 50"<<endl;
  11.         }
  12.     }

En este caso la variable num cumple la doble condición, es = 100 y es > 50
Tal como está el código va a evaluar las dos condiciones y si son ciertas va a ejecutar el bloque que hay dentro.
Pero si cambias la línea:
if (num>50)
por
else if (num>50)
verás que aún siendo cierta la segunda condición no se evalúa (y por tanto no se ejecuta) ya que al ser cierta la primera condición no se sigue evaluando.
__________________
Mi calculadora en Qt