Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

O teste condicional IF ELSE

Se notar bem, em nosso curso online de programação C, todos os nossos programas são rodados uma vez, do início até o fim do código, fazendo sempre a mesma coisa.

Mas você sabe que os programas 'reais' não são assim...se clicar em um botão acontecesse uma coisa, se selecionar algo no menu, outra coisa acontece.

Ou seja, os programas rodam dependendo de como o usuário interage com o aplicativo.
E é isso que vamos estudar nesse tutorial: teste condicional.

Clique aqui e saiba como obter seu certificado de programação C! Entre já no Mercado de Trabalho!


O que é, para que serve e como usar o teste condicional IF em C

Sem mais delongas, a sintaxe do teste condicional IF é a seguinte:

if( condição )
{
   // código
   // do IF
   // aqui
}

O 'if', em inglês, quer dizer 'se', no sentido de condição.
Por exemplo: "If you like C, you will like C++ too" (Se você gosta de C, vai gostar de C++ também).

O que o 'if' faz é testar a 'condição' entre parênteses, e se ela for verdadeira será executado o código entre chaves.

Exemplo de código: Condição sempre verdadeira


#include <stdio.h>

int main()
{
    if(1)
    {
        printf("Esse teste condicional é verdadeiro");
    }
}





Se você rodar esse programa em C verá que o print sempre aparecerá na tela, pois a condição 1 representa sempre verdadeiro, como você viu no artigo Sistema Binário e Valores lógicos 'true' ou 'false'.
Na verdade, qualquer valor diferente de 0 sempre resultará que o teste condicional é verdadeiro.

Esse 'verdadeiro' ou 'falso' é uma espécie de 'retorno' que a condição nos dá.
Por exemplo, vamos testar um código em que o teste condicional nunca é executado:

Exemplo de condição: Condição sempre falsa

#include <stdio.h>
int main()
{
    if( 0 )
    {
        printf("Somente programadores verão essa mensagem");
    }

    printf("Hello, World");
}

Se você rodar, aparecerá na tela somente o "Hello, World" pois o 0 sempre retorna valor 'false' para o teste condicional IF. Como o resultado é falso, o que está dentro do IF não é executado.


O que é, para que serve e como usar o ELSE em C

A palavra 'else' em inglês quer dizer 'ou', e ela está totalmente ligada ao IF, que já estudamos.

Se IF significa 'se' e o ELSE significa 'ou', você pode pensar e concluir para que serve o ELSE?

O ELSE só existe na presença do IF e só aparece depois que o IF aparecer.
A característica principal do ELSE é que ele não recebe nenhuma condição (ou seja, não tem parêntesis depois do ELSE, como tem no IF).

Na verdade ele recebe uma condição, que é implícita. A condição dele é contrária do IF.
Como uma condição é sempre TRUE ou FALSE, no par IF e ELSE um deles vai rodar se a condição for TRUE e o outro só roda se a condição FALSE.

A sintaxe dessa importantíssima dupla é a seguinte:

if ( condição )
{
   //se a condição
   //for verdadeira
   //esse código rodará
}
else
{
   //caso a condição
   //seja FALSA
   //é esse código que rodará
}

Ou seja, se a condição retornar um valor lógico VERDADEIRO, o IF rodará.
Porém, caso a condição retorne um valor lógico FALSO, o ELSE que rodará.

Então, veja o código a seguir, raciocine e tente adivinhar qual print irá rodar, antes de executar o programa:


Exemplo de código: rodando o ELSE


#include <stdio.h>

int main()
{
    if( 0 )
    {
        printf("Somente programadores verão essa mensagem");
    }
    else
    {
        printf("Hello, world!");
    }
}

Ora, 0 retorna valor lógico falso, então o IF não será executado.
Sempre que o IF não é executado, o ELSE será. Portanto, veremos a mensagem "Hello, World" na tela.

Exercício de C:
Faça o contrário do último exercício.
Ou seja, que o print "Hello, world!" seja exibido na tela, dentro do bloco do IF e que o bloco do ELSE (com a frase "Somente programadores verão essa mensagem") nunca seja rodado.

16 comentários:

cabista disse...

Eu gostaria de saber se no lugar de valores eu posso colocar caracteres.Desde já agradeço!

Guerreiras da Oração disse...

Pode sim! o if refere a uma condicao e pode ser qualquer uma. por exemplo voce pode ter uma variavel do tipo char que vai armazenar uma letra podera colocar assim: if(variavel = 'A')

Anônimo disse...

int main()
{
if(0)
{
printf("Esse teste condicional é verdadeiro");
}

}

sempre que executo esse codigo o meu anti virus alerta que encontrou um virus no arquivo que estou programando, por que isso?

cleverton rodrigues disse...

#include

int main()
{

if( 1 )
{
printf("Somente programadores verão essa mensagem");
}
else
{
printf("Hello, world!");

}
}

Admin disse...

Pq nesse código só funciona o ultimo "if-else"?

if(ps2x.Button(PSB_PAD_UP)) { //será TRUE enquanto o botão é pressionado
Serial.print("Up held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC);

analogWrite(IN1, 255);
analogWrite(IN2, 0);
analogWrite(IN3, 255);
analogWrite(IN4, 0);
}
else{
analogWrite(IN1, 0);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}


if(ps2x.Button(PSB_PAD_RIGHT)){ //direita
Serial.print("Right held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC);

analogWrite(IN1, 255);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 255);
}
else{
analogWrite(IN1, 0);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}

if(ps2x.Button(PSB_PAD_LEFT)){ //esquerda
Serial.print("LEFT held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC);

analogWrite(IN1, 0);
analogWrite(IN2, 255);
analogWrite(IN3, 255);
analogWrite(IN4, 0);
}
else{
analogWrite(IN1, 0);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}


if(ps2x.Button(PSB_PAD_DOWN)){ //baixo
Serial.print("DOWN held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_DOWN), DEC);

analogWrite(IN1, 0);
analogWrite(IN2, 255);
analogWrite(IN3, 0);
analogWrite(IN4, 255);
}
else{
analogWrite(IN1, 0);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}

Anônimo disse...

#include

int main(void)
{
if(1)
{
printf("Hello, world!\n");
}
else
{
printf("Somente programadores verão essa mensagem\n");
}

return 0;
}

ALKINDAR disse...

Olha que legal:
#include

int main()
{
int op;
printf("\n\n\tEscolha 0 ou 1\n");
scanf("%d",&op);
if( op )
{
printf("\n\tSomente programadores verao essa mensagem\n");
}
else
{
printf("\n\tHello, world!\n");
}
return 0;
}

Anônimo disse...

Se voce nao esta conseguindo fazer o exercicio então tente:

#include
#include

int main(){

if (1 > 0){
printf("Progama verdadeiro);
}

else{
printf("Progama falso);

}


return 0;
}

Renato disse...

Olá
No primeiro exercício surgiu a seguinte dúvida:

If(1)... o que foi testado para saber se a condição if é igual
a zero ou igual a hum? Onde e o que foi lido que
retornou um? Grato Renato.

#include

int main()
{
if(1)
{
printf("Esse teste condicional é verdadeiro");
}
}

Unknown disse...

#include &ltstdio.h&gt

int main()
{
if( 0 )
{
printf("Somente programadores verão essa mensagem");
}
else
{
printf("Hello, world!");
}
}

Anônimo disse...

Sempre após um if deve ter instruções, ou logo após um if pode haver outro if?

Lucas de Lima disse...

Muito bom!

WRTS disse...

#include

main()
{
if( 1 )
{
printf("Hello, world!");
}
else
{
printf("Somente programadores verão essa mensagem");
}
}

Unknown disse...

Será que entendi errado minha resposta está muito diferente em relação ao pessoal. Segue abaixo minha resposta:


#include
/*
Faça o contrário do último exercício. Ou seja, que o print "Hello, world!" seja exibido na tela, dentro do bloco do IF e que o bloco
do ELSE (com a frase "Somente programadores verão essa mensagem") nunca seja rodado.
*/

int main()
{
if( 1 )
{
printf("Hello, world!");
}
else
{
printf("Somente programadores verão essa mensagem");
}
}

Ana disse...

jean carlos conceição o seu programa faz o que foi pedido!

Anônimo disse...

Por favor, alguém me explica a sintaxe do IF else aninhado,estou confundindo o lugar das chaves.