>> DAVID J. MALAN: Vamos agora implementar um função que não tem apenas um lado
efeito, mas em vez disso retorna um valor de retorno.
Especificamente, vamos implementar uma função chamado obter int positivo cujo
propósito na vida é fazer exatamente isso.
Especificamente, eu gostaria de usar esta função da seguinte forma -
int N recebe obter int positivo.
E, em seguida, imprimir f, graças para a percentagem de i como um
espaço reservado, vírgula final.
>> Agora, é claro, ficar positivo int ainda não existe.
Então, vamos prometer para implementá-lo por acrescentando ao topo do meu arquivo de uma linha
como int o que significa que esta função voltará em int -
obter int positivo.
E vamos especificar explicitamente que este função não terá qualquer entrada, e
para que seus argumentos são nulos.
Vamos agora na parte inferior do meu arquivo, simplesmente para que eu possa manter principal em cima,
realmente implementar ou definir esta função.
>> Primeiro vamos começar com a mesma assinatura, por assim dizer -
int obter int vazio positivo.
E agora vamos implementar obter int positivo como se segue.
Vamos declarar um int, também chamado de N, mas poderíamos chamá-lo de quase qualquer coisa
gostaríamos, faça o seguinte, enquanto alguns condição é verdadeira, e nós vamos voltar a
essa condição em um momento.
Imprimir f, por favor me dê um int positivo, e agora vamos usar Get int de
a biblioteca CS50 realmente conseguir que int.
>> Mas, na minha condição, vamos fazer isso laço enquanto N é inferior a 1.
Em outras palavras, desde que o utilizador não coopera por me proporcionar
com um int positivo, deixe-me voltar a pronta ele ou ela de novo, e de novo, e de novo
até que ele ou ela faz.
Mas eu não estou pronto ainda, porque no final desta função que eu preciso
realmente fazer alguma coisa com essa entrada.
E assim eu estou indo para ir em voltar com uma linha como final retorno
ponto e vírgula, retornando, assim, uma real int to main que chamou esta função.
Agora vale a pena notar que, apesar de obter retornos positivos em int int, é
certamente bem para que ele retorne um int positivo especificamente.
Não há um tipo de dados especial para inteiro positivo especificamente, portanto,
simplesmente usar o construída em "int".
>> Agora, de volta na linha nove, perceber que eu sou imprimir N. Mas o N nesta linha
pertence ao N, que está declarado na linha oito.
Então não é que você pode perfeitamente ter variáveis ​​com nomes idênticos assim
desde que eles existem dentro diferentes âmbitos.
E lembrar que o escopo é definido pela as chaves que mais de perto
coloque a variável que você definiu.
>> Agora vamos compilar e executar este programa.
Fazer funções 1, ponto reduzir funções 1.
Vamos dar-lhe um positivo int-como 50, e ele diz que graças pelo 50.
Enquanto isso, se não cooperar, executar o programa de novo, dando-lhe
0, estou solicitado novamente, ou dando-lhe 1 negativo, estou solicitado novamente.
Mas se eu cooperar fornecendo-lhe, dizer, 50 anos, estou agradeceu a 50.