Lo primero antes de nada es que no estás siguiendo la estructura que te he propuesto.
Clase básica de condicionales
El siguiente if ejecutará
codigo si
condicion es cierta.
Se entiende que la condición de un if es cierta
SIEMPRE que ésta no valga 0, es decir:
Código C:
Ver originalint var = 12;
// var no vale 0
// --> se ejecuta codigo
if( var )
codigo;
// es una asignación, no una comparación y, después de eso var = 23 != 0
// --> se ejecuta codigo
if( var = 23 )
codigo;
// -345 != 0
// --> se ejecuta codigo
if( -345 )
codigo;
int* ptr = 0;
// este if consulta la posición de memoria apuntada por el puntero... que vale 0
// --> NO se ejecuta codigo
if( ptr )
codigo;
var = 0;
ptr = &var;
// se vuelve a consutlar la posicion de memoria apuntada, ya no vale 0
// --> se ejecuta codigo
if( ptr )
codigo;
// se consulta el valor almacenado en la posicion apuntada.
// actualmente var=0, luego *ptr=0
// --> NO se ejecuta codigo
if( *ptr )
codigo;
por otro lado tenemos la estructura if-else:
Esta estructura funciona así: si se cumple la condición se ejecuta codigo1, en caso contrario se ejecuta codigo2. Esto quiere decir que NUNCA se podrán ejecutar codigo1 y codigo2 a la vez.
Esta estructura se puede agrupar en varias secuencias if-else:
Código C:
Ver originalif( condicion1 )
codigo1;
else if( condicion2 )
codigo2;
else if( condicion3 )
codigo3;
else
codigo4;
Si se cumple la primera condición, se ejecutará codigo1, en caso contrario se comprueba la segunda condición, si se cumple se ejecuta codigo2, en caso contrario...
Un pequeño inciso llegados a este punto, el último else no es obligatorio ponerlo, todo depende de si necesitas o no realizar alguna acción en el caso de que no se cumpla ninguna condición.
Clase acelerada de números negativos
Un número cualquiera es negativo sí y solo sí es inferior a 0.
Ejemplo:
Código C:
Ver originalint n;
if( n < 0 )
// El numero es negativo
else
// El numero es 0 o positivo
otra forma:
Código C:
Ver originalint n;
if( n >= 0)
// El numero 0 o positivo
else
// El numero es negativo
otra más:
Código C:
Ver originalint n;
if( i < 0 )
// El numero es negativo
else if( i > 0 )
// El numero es positivo
else
// El numero es 0
y no sigo que si no el mensaje queda demasiado guarro.
Un saludo.