Dúvida sobre ponto e vírgula em C

01/05/2022

0

C

Por que, neste código por exemplo, ao colocar ponto e vírgula após os "if" todos acabam sendo utilizados?


#include <stdio.h>

int main()
{
int x, y;

printf("Digite o valor de x e y(na ordem): ");
scanf("%i%i",&x,&y);

if(x!=0 && y!=0)
{if(x>0 && y>0) // dúvida: pq se colocar ponto e vírgula após os "if", o código não funciona? (imprime tudo)
printf("Primeiro quadrante");
if(x<0 && y>0)
printf("Segundo quadrante");
if(x<0 && y<0)
printf("Terceiro quadrante");
if(x>0 && y<0)
printf("Quarto quadrante");

}

else
{if(x==0 && y==0)
printf("Origem");
else
printf("Sobre o eixo");}

return 0;
}
Matheus

Matheus

Responder

Post mais votado

10/07/2022

Aconselho que use o parâmetro else if em vez de todos os 'if's alinhados;

else if
Complementar ao if/else temos o operador else if que traz uma nova condição a ser testada no caso de falha no teste da condição anterior.

Sintaxe do else if:

if (expressão booleana 1)
{
// código 1
}
else if (expressão booleana 2)
{
// código 2
}
else
{
// código 3
}
Dessa forma, é testada a expressão booleana 1. Caso ela seja atendida, o bloco de código 1 é executado. Caso não seja, testamos a expressão 2. Sendo atendida, o bloco de código 2 é executado. Não sendo atendida, o programa executa o bloco de código 3.

Saiba que podemos criar vários else if, o que nos possibilita atender a cenários com três ou mais condições a serem avaliadas.

Segue o link do tópico: https://www.devmedia.com.br/csharp-if-else-e-o-operador-ternario/38192#:~:text=l%C3%B3gica%20sendo%20implementada.-,else%20if,no%20teste%20da%20condi%C3%A7%C3%A3o%20anterior.&text=Dessa%20forma%2C%20%C3%A9%20testada%20a,de%20c%C3%B3digo%201%20%C3%A9%20executado.

Rafael

Rafael
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar