francisco123 Posted September 29, 2012 at 12:52 AM Report #476997 Posted September 29, 2012 at 12:52 AM Olá eu sou novo por aqui e a programar em C, tenho alguma experiencia com outras linguagens mas com C tenho pouca. Estou com uma duvida pois estou a tentar resolver um problema do tipo eu tenho uma função e o valor dessa função nao pode ser menor que 100, a minha duvida é, se a função for maior que 100 eu sei o que fazer, faço return do que quero, mas depois quando faço o else nao quero que devolva nada, mas tb nao posso meter null, alguém sabe como posso fazer isso? Obrigado
petvetbr Posted September 29, 2012 at 01:03 AM Report #476998 Posted September 29, 2012 at 01:03 AM Você teria um exemplo deste tipo de código de como é feito em outra linguagem que você conheça? Nas linguagens que conheço, você precisa definir a priori qual o tipo de retorno que uma função terá, em casos que não irá devolver nada, pode utilizar o void, mas se optar por qualquer outro tipo teria que retornar algum valor sempre. O que você pode utilizar é algum tipo de valor ou flag para indicar para o código que faz a chamada se a condição que você colocou (ser maior que 100) foi encontrada para que este código saiba o que fazer com o valor devolvido, como se vai utilizá-lo ou descartá-lo. Mas não existe como até onde eu conheça definir uma função que pode ou não retornar algo dependendo do código dela. Ou ela sempre retorna algo, ou nunca retorna (void). Fernando Lage Bastos - MCP/MCTS/MCPD
pmg Posted September 29, 2012 at 07:01 AM Report #477006 Posted September 29, 2012 at 07:01 AM Uma das coisas que podes fazer é abortar o programa. if (valor >= 100) return valor; else { fprintf(stderr, "Valor da funcao invalido\n"); exit(EXIT_FAILURE); } What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
bioshock Posted September 29, 2012 at 08:35 AM Report #477009 Posted September 29, 2012 at 08:35 AM Não precisas do Else para nada, a menos que queiras especificar, como o @pmg disse, que a função é inválida.
HappyHippyHippo Posted September 29, 2012 at 08:55 AM Report #477010 Posted September 29, 2012 at 08:55 AM existe duas abordagens: retornas um valor inválido demarcando que ouve erro no função: int func_sup_100() { // ... return valor < 100 ? 0 : valor; // como 0 é um valor inferior a 100, declara o erro na função } o valor de retorno significa somente o sucesso da função, o valor irá ser atribuido a um ponteiro dado como argumento da função: int func_sup_100(int * valor) { // ... return *valor < 100 ? -1 : 0; // -1 se o valor é inválido ou 0 se for válido } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now