Bastante requisitada por programadores iniciantes e/ou programadores provenientes de outra linguagem, a maneira de se construir um bloco de instruções if/else é bastante trivial e exatamente igual em C, C++ e Java. Aqui vai um exemplo:
Em C:
# include <stdio.h>
int main(int argc, char** argv)
{
int x = 0;
int y = 1;
if(x > y)
printf("%d eh maior que %d\n", x, y);
else
printf("%d nao eh maior que %d\n", x, y);
x = y--;
if(x > y)
printf("%d eh maior que %d\n", x, y);
else
printf("%d nao eh maior que %d\n", x, y);
return 0;
}
Em C++:
# include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int x = 0;
int y = 1;
if(x > y)
cout << x << " eh maior que " << y << endl;
else
cout << x << " nao eh maior que " << y << endl;
x = y--;
if(x > y)
cout << x << " eh maior que " << y << endl;
else
cout << x << " nao eh maior que " << y << endl;
return 0;
}
Em Java:
public class IfElse
{
public static void main(String args[])
{
int x = 0;
int y = 1;
if(x > y)
System.out.println(x + " eh maior que " + y);
else
System.out.println(x + " nao eh maior que " + y);
x = y--;
if(x > y)
System.out.println(x + " eh maior que " + y);
else
System.out.println(x + " nao eh maior que " + y);
}
}
O velho problema das chaves nos if/else aninhados:
Sabemos que ao usar apenas uma instrução dentro de um if ou de um else, as chaves são opcionais. Mais de uma instrução, no entanto, torna obrigatório o uso das chaves. Vejamos um problema comum com o uso das chaves em if/else aninhados:
# include <stdio.h>
int main(int argc, char** argv)
{
int x = 5;
if(x == 5)
x = 4;
if(x == 3)
x = 2;
else
x = 0;
//imprima x
if(x == 5)
x = 4;
if(x == 3)
x = 2;
else
x = 1;
//imprima x
return 0;
}
O que ocorrerá com o valor de x neste código? Teste-o e tire suas conclusões. A dica que eu posso dar é que pode ser resolvido fazendo isto:
# include <stdio.h>
int main(int argc, char** argv)
{
int x = 5;
if(x == 5)
{
x = 4;
if(x == 3)
x = 2;
}else
x = 0;
//imprima x
if(x == 5)
{
x = 4;
if(x == 3)
x = 2;
}else
x = 1;
//imprima x
return 0;
}
Teste os dois códigos e perceba que uma instrução else sempre pertence a o último if, no caso deste if/else conter apenas uma instrução. Uma dica: para evitar problemas, sempre use chaves em if/else, não importa se ele tiverem mais de uma instrução ou apenas uma.