Igor Thalles Postado Agosto 13, 2015 Denunciar Share Postado Agosto 13, 2015 Estou com um probleminha basico na programação condicional.Eu coloquei o Switch (op) e um Case 'arroz'. Mas quando eu digito arroz quando eu executo, esta vindo a mensagem errada. Porem se eu colocar simbolos ou numeros o Case funciona. Obrigado pela ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Agosto 13, 2015 Denunciar Share Postado Agosto 13, 2015 (editado) Não é possível fazer isso.Exemplo correto seria case 'a':(ou qualquer outra letra), um char não é um string. Si usar if conjuntamente com strcmp de esta forma: if ( strcmp(op, "arroz")==0 ) ...então sim. O switch somente compara chars e inteiros, para strings use if con strcomp como falei. ;) Editado Agosto 13, 2015 por vangodp Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Igor Thalles Postado Agosto 14, 2015 Autor Denunciar Share Postado Agosto 14, 2015 Não é possível fazer isso.Exemplo correto seria case 'a':(ou qualquer outra letra), um char não é um string. Si usar if conjuntamente com strcmp de esta forma: if ( strcmp(op, "arroz")==0 ) ...então sim. O switch somente compara chars e inteiros, para strings use if con strcomp como falei. ;) Obrigado.Então que dizer que no case eu devo usar apenas um caractere? Entendi isso hehe.O resto eu irei pesquisar. Estou iniciando ainda, falta muito pra aprender. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Agosto 14, 2015 Denunciar Share Postado Agosto 14, 2015 Sim, Assim é! você já tentou fazer char ch = 'Alo'; ?? Si imprimir esse ch tal como printf("%c", ch), você vai perceber que que será imprimido o ultimo numero somente.Um char ocupa um Byte da sua memória, e por isso ele somente guarda uma letra, um string é diferente, ele é um conjunto de chars(Bytes) que se encontram de forma consecutiva na memória, ou seja, esta um a continuação do outro e todos estariam juntos, porem um string se declara de deferente forma, se declara fazendo char palavra[tamanho], já o char ch tem muita diferença. Por isso seu case não vai funcionar como se fosse um string, pois um char só pode guardar uma letra apenas.O switch é mais usado para comprovações simples, por exemplo quando você quer gerar um menu tipo... quer escolher essa opção escolha 1, quer outra opção escolha 2, ou pulse 0 para sair... Si for fazer comparações complexas melhor usar if. Falou? XDBay! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Igor Thalles
Estou com um probleminha basico na programação condicional.
Eu coloquei o Switch (op) e um Case 'arroz'. Mas quando eu digito arroz quando eu executo, esta vindo a mensagem errada. Porem se eu colocar simbolos ou numeros o Case funciona.
Obrigado pela ajuda.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.