Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan Pedro

[Resolvido] entendendo a funçao return

Recommended Posts

olá pessoal,

gostaria de saber se sempre é necessario da um return numa funçao secundaria,pois para funçoes que retornan valores como,

int soma(int numero1,numero2)
{
return(numero1+numero2);
}
o return retorna um valor ,mais fazendo uma pesquisa,caso a funçao nao seja void ela teria que possuir um return,mas por exemplo num programa do que a funçao principal chama uma secundaria apenas para informar se um numero é par
int numero_par(int npa)//função para comparação de numero par
{
    
    if(npa % 2 == 0)//npa = "numero par"
    { cout<<"O numero e par!";}
    else
    { cout<<"O numero e impar!";}
    
}
eu nao vejo como poderia utilizar a funçao return,lembrando que o programa funciona perfeitamente ,nesse caso nao seria obrigado ter o retunr já que a funçao nao retorna nenhum valor ???????lembrando que ela nao pode ser declarada como void pois o numero recebido por ela é um valor inteiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque ela não pode ser declarada como void?

void numero_par(int par);

ai... ai... ai...

Cuidado com esses livros traduzidos e coisas do genero, pessoal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossaaaaaa que mancada a minha!

depois que eu postei o topico eu fui analizar e persebi que podia ser declarado como void ,o erro que dava era com outra sintaxe que uma alteração mal sucedida e imcompleta no aplicativo gerava!mais entao só uma pergunta como ele vai apenas imprimir na tela se é par ou impar,isso é o quesito para poder ser void e nao presizar do RETURN (já que a funçao só ira imprimir na tela e nao retornará nenhum valor )Correto ??? ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não entendi nada do que você falou sobre requisito.

Funções void podem ter um return no meio do código. Dependendo do que se está fazendo é útil.

Os modos de se sair de uma função é chegar ao final dela, encontrar um return ou uma instrução de desvio do tipo longjmp/setjmp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando eu disse se era um requesito o detalhe de que a função retornaria apenas uma frase,eu quiz dizer que,como a funçao nao retornaria nenhum valor int,float,double e sim apenas imprimiria uma mensagem,isso seria um motivo de se usar o VOID,pois até onde acho que compriendo,a grande diferença entre usar "INT,FLOAT,DOUBLE,CHAR " do VOID é que o VOID nao tem a OBRIGAÇAO de retornar nada(ele até pod retornar,mais nao é uma regra,ao contrario do INT,FLOAT..,estou correto ???Quando seria "RECOMENDAVEL" UTILIZAR Um VOID à utlizar int,float... http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

qual dessas duas funçoes estaria melhor

int tabuada(int tb)//função para tabuada
{
    int i,resultabuada;
    for(i = 0; i<=10;i++)
    {
          resultabuada=tb*i;//tb = de  "tabuada" variavel que recebe o valor da funçao principal
    cout<<tb<<" x "<<i<<" = "<<resultabuada<<"\n";
    } 
    return(resultabuada);
}         
ou essa....

void tabuada(int tb)//função para tabuada
{
    int i,resultabuada;
    for(i = 0; i<=10;i++)
    {
          resultabuada=tb*i;
    cout<<tb<<" x "<<i<<" = "<<resultabuada<<"\n";
    } 

}         
e por que ??? :huh: :huh: achu que assim talves fique mais facil compriender ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

As duas funções estão certas.

Depende do que você quer fazer e se você quer um resultado ou não.

 

A questão é que uma função void não retorna nada, e nem pode retornar!

Não tem essa de opcional.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é que uma função void não retorna nada, e nem pode retornar!

Não tem essa de opcional.

 

Não sei se foi pra mim,mas quotando o que está no C99:

 

6.8.6.4 The return statement

Constraints

1 A return statement with an expression shall not appear in a function whose return type is void. A return statement without an expression shall only appear in a function whose return type is void.

 

Portanto, uma função que retorna tipo void pode sim ter um return p/ sair. O que não pode ter é uma expressão, tornando o return 'vazio'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

A questão é que uma função void não retorna nada, e nem pode retornar!

Não tem essa de opcional.

 

Não sei se foi pra mim,mas quotando o que está no C99:

 

6.8.6.4 The return statement

Constraints

1 A return statement with an expression shall not appear in a function whose return type is void. A return statement without an expression shall only appear in a function whose return type is void.

 

Portanto, uma função que retorna tipo void pode sim ter um return p/ sair. O que não pode ter é uma expressão, tornando o return 'vazio'.

 

Não, não foi pra você até pq falamos a mesma coisa... ^_^

Sim, foi exatamente o que eu disse (talvez tenha me expressado mal), um return 'vazio' não retorna nada para a função chamadora.

Eu disse que não pode retornar, o que não significa que uma instrução "return" não seja válida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.