Ir ao conteúdo

Posts recomendados

Postado

Pessoal quando eu uso o IF no no devc++ não preciso colocar ; no final porquê? Sei que tenho que colocar entre chaves o que o IF vai levar  em consideração, mas meu professor me mostrou alguns códigos onde não é preciso colocar entre chaves depois do IF alguém sabe o porquê também?

Postado

Olá, tudo bem?

 

Então, eu entendi quase nada. Você disse que o professor te mostrou, pois então nos mostre também para que entendamos melhor a situação.

 

 

Ok!?

  • Curtir 2
Postado
38 minutos atrás, vangodp disse:

suponho que você diz algo como isso:
if(...); <-isso?
{
//...
}

porque si colocar esse ponto e virgula você ta separando a condição if(...) da instrução {...}, é como se fosse 2 coisas separadas, então esse seu if não faz sentido algum, porque não faz efeito.

Ahh Entendi, obrigado mano...

Postado

Sobre a questão do uso das chaves: as chaves devem ser usadas quando a quantidade de comandos da estrutura(condicional ou de repetição) for maior que 1. Ou seja, as chaves são utilizadas para demarcar um bloco de comandos a serem executados na estrutura.

 

Exemplos:

- Uso correto:

//Com bloco de instruções
if(numero == 1)
{
    numero *= 2;
    printf("O número era 1 e foi multiplicado por 2!");
    printf("Digite um novo número: ");
    scanf("%d", &numero);
}
//Com uma única instrução
if(numero == 1)
    printf("O número é 1!");

- Uso incorreto:

if(numero == 1)
    numero *= 2;
    printf("O número era 1 e foi multiplicado por 2!");
    printf("Digite um novo número: ");
    scanf("%d", &numero);

//Neste caso, visando fazer o mesmo que era feito com o bloco, estaria incorreto, mas não daria erro.
//Este código seria entendido da seguinte forma:

if(numero == 1)
    numero *= 2;
printf("O número era 1 e foi multiplicado por 2!");
printf("Digite um novo número: ");
scanf("%d", &numero);

//Ou seja, para o compilador, se trataria apenas de uma falta de indentação do código.

 

  • Curtir 2
Postado

...

 

Ainda complementando esse exemplo @iHollyZinhO , onde temos apenas funções + declaração IF, e nada mais. Poderias substitui o operador-símbolo (;) por operador-símbolo (,) e finalizar com operador-símbolo (;), vai perceber o mesmo efeito do uso de chaves. Isso é interessante porque a maioria dos programadores reconhece o uso de vírgula apenas na declaração de variáveis de um mesmo tipo, e nunca viram blocos formatados com vírgula.

 

if (numero  ==  1)
      numero *=  2,
      printf ("O número era 1 e foi multiplicado por 2!\n"),
      printf ("Digite um novo número: "),
      scanf ("%d", &numero);  /* fim do comando if(...){...} */

 

Entretanto, prefiro seguir as recomendações do PhD. McCann, e também usar blocos sempre: em todas ocasiões até mesmo naquelas mais ingenuas.

 

Ok!? Tchau.

 

  • Curtir 2
Postado

@AnsiC Obrigado pela dica agora eu entendi, não sabia que tinha como fazer isso com a vírgula, assim não é preciso usar chaves mesmo ultrapassando o limite de 1 linha de código.

adicionado 6 minutos depois

@iHollyZinhO entendi, obrigado de verdade...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!