Ir ao conteúdo
  • Cadastre-se

C Loop em código simples


Matheus ZZ

Posts recomendados

Estou começando a programar em C agora e ainda não tenho muito experiência com programação. Fiz esse código abaixo para tentar entender melhor as condições, porém eu queria que sempre que o usuário não responder com o 's' ou 'n' retornasse a perguntar inicial forçando ele a responder corretamente. Tentei usar o for e o while porém ficava repetindo muitas vezes não apenas uma para responder novamente. 

 

{

   char resp = get_char("voce aceita?\n");

   

   if (resp == 's' || resp == 'S')

   {

   printf("voce aceitou\n.");

   }

   else if (resp == 'n' || resp == 'N')

   {

   printf("voce recusou\n.");

   }

}   

 

Link para o comentário
Compartilhar em outros sites

@Matheus ZZ  Você pode colocar essas condições em um loop infinito para sair apenas quando for s ou n,

 

while(1){
    printf("Você aceita? ");
    scanf("%c%*c",&c);
    
    if(c =='s'||c=='S'){
        printf("Você aceitou");
        break;
    }else if(c=='n'||c=='N'){
        printf("Você recusou");
        break;
    }
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Pode usar um do-while também:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(void) {
  char c = ' ';

  do {
    printf("voce aceita? [ S / N ]: ");
    scanf(" %c%*c", &c);
    c = toupper(c);
  } while(c != 'N' && c != 'S');

  if (c == 'S') {
    printf("Aceito \n");
  } else {
    printf("Recusado \n");
  }

  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

É um procedimento? Avalie o retorno do procedimento repassando o valor para expressão.

 

procedimento

int voce_aceita (void){
    char resp = get_char ("voce aceita? ");
    if ((resp == 's') || (resp == 'S')){
        printf("%s", "Aceitou. \n");
        return 0;
    }else
    if ((resp == 'n') || (resp == 'N')){
        printf("%s", "Recusou. \n");
        return 0;
   }
   return 1;
}

 

loop do procedimento

int continuar = voce_aceita ();
while (continuar) continuar = voce_aceita ();

 

Boa Sorte.

Link para o comentário
Compartilhar em outros sites

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...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!