Publicada por memory em 03/04/2007 - 12:23h:
* memory usa Slackware

Ola..

Tenho uma dúvida, digamos uma curiosidade.

Em c++;

fiz um programa tal tal

criei uma função que retorna V || F (no caso bool)

entao ai dps que fiz a condições todas para

validar se e verdadeira ou falsa eu uso return certo ?

Queria saber qual a diferença entre return (true) e return (1)

Por que eu fiz os teste a funçao retornou tranquilo usando as duas com return (true) e (1).

Qual devo usar ? ou sao iguais ?

Grato...

  
 
Resposta de apdrall em 03/04/2007 - 12:45h:
* apdrall usa Debian
* apdrall tem conceito: 9.5
 


Prezado,

Para funções que retornam V ou F, geralmente se usa retorno boleeano, o useja, TRUE ou FALSE, já que o tipo booleano foi criado para esse propósito. Mas você pode convencionar seu programa para interpretar qualquer tipo de retorno como sendo verdadeiro ou falso. Você pode, por exemplo, falar que se for verdadeiro, retorna 15, se for falso, retorna 25.. mas isso não é uma boa prática de programação. Seu codigo fica sujo com isso. Em linguagens como C/C++, o número 0 é considerado tendo o mesmo valor lógico do que falso, enquanto que qualquer numero maior que 0 é verdadeiro.

[]s,
Sílvio

 
Resposta de sombriks em 03/04/2007 - 13:32h:
* sombriks usa Slackware
* sombriks tem conceito: 8.7
 


nos dias de hj já non vale tanto, mass....

o retorno int ocupa mas memória que booleano, :D

 
Resposta de ls_junior em 03/04/2007 - 13:32h:
* ls_junior usa Debian
* ls_junior tem conceito: 9.0
 


Em c qualquer coisa diferente de 0 é verdadeiro. Você pode definir uma constante com os valores de true e false. Da uma olhada no exemplo abaixo:

#include <stdio.h>

// Define as constantes TRUE e FALSE
#define TRUE 1
#define FALSE 0

void print(int n) {
if(n) {
printf("%d Verdadeiro\n", n);
}
else {
printf("%d Falso\n", n);
}
};

int equals(int a, int b) {
if(a == b) {
return TRUE;
}
return FALSE;
};

int main(int argc, char *argv[]) {
int i = -5;
for(i; i <= 5; i++) {
print(i);
}
return 0;
}

Executando esse programa terá a seguinte saída:
root@rock:tmp# ./a.out
-5 Verdadeiro
-4 Verdadeiro
-3 Verdadeiro
-2 Verdadeiro
-1 Verdadeiro
0 Falso
1 Verdadeiro
2 Verdadeiro
3 Verdadeiro
4 Verdadeiro
5 Verdadeiro


 
Resposta de memory em 04/04/2007 - 09:50h:
* memory usa Slackware
* memory tem conceito: nenhum voto.
 


Hum ok entendi sim. brigadao
perguntei porque eu li no livro do deitel c++
5ediçao e ele usa o return (1).
enquanto outros livros que usam return (true).


  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts