A condio lgica ser avaliada, se o resultado for verdadeiro ( 1 ) a declarao ser executada, se for falsa (0), a declarao no ser executada
Exemplo: #include <iostream> using namespace std; int main (int argc, char *argv[ ]) { int num; cout<<"Digite um numero: ; cin>>num; if (num > 10) cout<<"\n\nO numero e maior que 10; if (num == 10) { cout<<"\n\nVoce acertou!\n; cout<<"O numero e igual a 10."; } if (num < 10) cout<<"\n\nO numero e menor que 10; return(0); }
Comando if / else
Podemos pensar no comando else como sendo um complemento do comando if. O comando if / else completo tem a seguinte forma geral:
if (condio lgica) comando_1; else comando_2;
A condio lgica ser avaliada, se ela for verdadeira ( 1 ) os comandos pertencentes ao if sero executados, caso contrrio o else ser executado automaticamente.
importante nunca esquecer que, quando usamos a estrutura if-else, estamos garantindo que uma das duas declaraes ser executada. Nunca sero executadas as duas ou nenhuma delas.
#include <iostream> int main (int argc, char *argv[ ]) { int num; cout<<"Digite um numero: ; cin>>num; if (num==10) { cout<<"\n\nVoce acertou!\n"; cout<<"O numero e igual a 10.\n; } else { cout<<"\n\nVoce errou!\n"; cout<<"O numero e diferente de 10.\n; } return(0); }
O if / else-if / else
A estrutura if / else-if / else apenas uma extenso da estrutura if / else. Sua forma geral pode ser escrita como sendo:
if (condio lgica 1) declarao_1; else if (condio lgica 2) declarao_2; else if (condio lgica 3) declarao_3; ... else if (condio_n) declarao_n; else declarao_Final;
A estrutura acima funciona da seguinte maneira: o programa comea a testar as condies comeando pelo primeiro if, se a condio lgica for verdadeira os comandos pertencentes ao if sero executados, caso contrrio a condio lgica do primeiro else if testada, se o resultado for verdadeiro os comandos pertencentes ao else if sero executados, caso contrrio os demais else if serto testados at que ele ache uma condio lgica cujo resultado d verdadeiro.
O else s ser executado no caso de todas as condies lgicas resultarem em valor lgico falso.
#include <iostream> using namespace std; int main (int argc, char *argv[ ]) { int num; cout<<"Digite um numero: "; cin>>num; if (num>10) cout<<"\n\nO numero e maior que 10; else if (num==10) { cout<<"\n\nVoce acertou!\n; cout<<"O numero e igual a 10."; } else cout<<"\n\nO numero e menor que 10"; return(0); }
Exerccios:
As Organizaes Tabajara resolveram dar um aumento de salrio aos seus colaboradores e lhe contrataram para desenvolver o programa que calcular os reajustes.Faa um programa que recebe o salrio de um colaborador e o reajuste segundo o seguinte critrio, baseado no salrio atual: salrios at R$ 280,00 (incluindo) : aumento de 20% salrios entre R$ 280,00 e R$ 700,00 : aumento de 15% salrios entre R$ 700,00 e R$ 1500,00 : aumento de 10% salrios de R$ 1500,00 em diante : aumento de 5% Aps o aumento ser realizado, informe na tela: o salrio antes do reajuste; o percentual de aumento aplicado; o valor do aumento; o novo salrio, aps o aumento.
Estrutura switch
O comando switch prprio para se testar uma varivel em relao a diversos valores pr-estabelecidos.
O switch testa a varivel e executa a declarao cujo case corresponda ao valor atual da varivel. A declarao default opcional e ser executada apenas se a varivel, que est sendo testada, no for igual a nenhuma das constantes.
Sua forma geral :
switch (varivel) { case <valor1>: declarao_1; break; case <valor2>: declarao_2; break; . .. default : declarao_default; }
O comando break, faz com que o switch seja interrompido assim que uma das declaraes seja executada. Mas ele no essencial ao comando switch.
Se aps a execuo da declarao no houver um break, o programa continuar executando.
Veremos agora um exemplo do comando switch:
#include <iostream> int main (int argc, char *argv[ ]) { int num; cout<<"Digite um numero: ; cin>>num; switch (num) { case 9: cout<<"\n\nO numero e igual a 9.\n"; break; case 10: cout<<"\n\nO numero e igual a 10.\n"; break; default: cout<<"\n\nO numero nao e nem 9 nem 10 \n"; } return(0); }
Exerccio:
Faa um programa que receba do usurio o nmero de lados e o tamanho dos lados de um polgono regular e imprima o valor da rea do polgono. O programa deve utilizar uma estrutura switch-case para decidir que frmula de clculo utilizar, de acordo com o nmero de lados do polgono. Se o nmero de lados for diferente de 3, 4 ou 6 o programa deve informar: no sei calcular a rea. reas:
Tringulo: A = L*L*1.73/4 Quadrado: A = L*L Hexgono: A = 6*L*L*1.73/4;
Estrutura goto
O goto o ltimo comando de controle de fluxo. Ele pertence a uma classe parte: a dos comandos de salto incondicional.
O goto realiza um salto para um local especificado. Este local determinado por um rtulo. Forma geral:
nome_do_rtulo: ....
goto nome_do_rtulo; ....
Devemos declarar o nome do rtulo na posio para a qual vamos dar o salto seguido de :.
O goto pode saltar para um rtulo que esteja mais frente ou para trs no programa.
Uma observao importante que o rtulo e o goto devem estar dentro da mesma funo.
NomeRotulo:
if (condio) { declarao; incremento; goto NomeRotulo; }
NomeRotulo:
if (condio) { declarao; incremento; goto NomeRotulo; }
O comando goto deve ser utilizado com parcimnia, pois o abuso no seu uso tende a tornar o cdigo confuso. O goto no um comando necessrio, podendo sempre ser substitudo por outras estruturas de controle.
#include <iostream> using namespace std; int main(int argc, char *argv[ ]) { int opcao;
REFAZ: cout<<"\n\n Escolha uma opcao entre 1 e 5: "; cin>>opcao; if ((opcao > 5) || (opcao <1)) goto REFAZ; return(0); }