Baixe o app para aproveitar ainda mais
Prévia do material em texto
if .. / if..else / if… else if … / switch Qual escolher? ��� � If...else - Comando que testa uma condição e dependendo do resultado, o fluxo do programa seguirá caminhos diferentes. Também conhecido como estrutura de decisão, seleção ou condicional. Três tipos de comandos if...else, são eles: If simples - Após a realização do teste, só será executado o bloco de comandos se o resultado for verdadeiro. Nesse caso, o else não estará presente porque nada será executado. � � If composto - Após a execução do teste, tanto será executado um bloco de comandos se o resultado for verdadeiro quanto será executado outro bloco de comandos se o resultado for falso. � � If encadeados - Após a realização do teste, será executado um bloco de comandos se o resultado for verdadeiro, caso não seja, outro teste será feito até que todas as possibilidades de respostas sejam contempladas. Se o último else não estiver presente, o que não é aconselhável, nada acontecerá para a situação não atendida pelos testes. � � O teste é uma expressão relacional que compara os valores dos seus operandos. A expressão relacional é formada, obrigatoriamente, por um operador relacional e dois operandos. Ordenação através de uma combinação dois a dois com troca quando necessário. A estrutura switch (Múltiplas escolhas)... case é conhecida como uma alternativa de múltiplas escolhas, isto é, quando precisarmos usar if... else if....Todavia, ela só pode ser usada quando a variável, ou expressão que a controla, for do tipo int ou char de um caracter e somente um valor puder ser colocado em cada case. Para resolver esse problema, fazemos uso do comando break; no final de cada caso. Vale ressaltar que o default não é obrigatório, mas serve para exibir alguma mensagem no caso do valor não ser igual a nenhum dos rótulos. Em alguns momentos, poderemos não fazer uso do break; � � Exemplo: 1) Se else não tiver nenhum comando para ser executado, devemos usar assim: else {}? R: Não. Você não deve criar esse hábito. Exemplo: 2) Quando uno duas expressões relacional por um dos operadores lógico && ou ||, preciso sempre colocá-las entre parênteses? R: Não, mas nada lhe impede. Exemplo: 3) Os Operadores Relacionais podem ser usados para comparar vetores de char? R: Não. Somente a função strcmp() da biblioteca string.h . Exemplo: 4) É obrigado dar espaço depois da palavra case na estrutura do switch? R: Sim. 1a Questão (Ref.: 201309287250) A professora de Linguagem de Programação I pediu aos alunos que construíssem um código para que permitisse a entrada de um número inteiro e exibisse umas das mensagens: Positivo / Zero / Negativo Eles acharam esse pedido estranho, visto que era um programa clássico. Ao término do tempo que ela deu para o desenvolvimento, pediu que eles comparassem as duas soluções que colocou no quadro. Leia as afirmativas abaixo e escolha a alternativa correta. I na solução A, se o número fosse positivo, era testado três vezes. II na solução B, se o número fosse positivo, era testado uma vez. III Se as duas soluções produzem a mesma saída podemos afirmar que, em termos de eficiência, não importa a quantidade de testes. IV A solução A poderia usar um if simples e um if composto ao invés de três ifs simples. V A solução B poderia testar se era zero no primeiro if e menor do que zero no outro desde que estivessem presentes as mensagens correspondentes aos testes e a mensagem Positivo no else. II, III e IV estão corretas I, II e V estão corretas I, II, IV e V estão corretas II e IV estão corretas I, II e III estão corretas 2a Questão (Ref.: 201309233590) Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0? enquanto (num > 0) while (num != 0) while (num == 0) for ( i = 0; i == num; i++) for (i = num; i > 0; i++) 3a Questão (Ref.: 201309296484) A estrutura de decisão switch é extremamente poderosa na linguagem C. Dado o código: #include < stdio.h> #include < stdlib.h> void main(){ int a= 3; int b =2; switch(a){ case 1: a++; break; case 2: a-=b++; break; case 3: if(b)a+=b; default: a = 1; } printf("%d", a+b); system("PAUSE"); } Selecione a opção correta: O programa exibirá 3 Ocorrerá um erro O programa exibirá 7 O programa exibirá 5 O programa exibirá 1
Compartilhar