1
resposta

Variável acessível e inacessível

def da_boas_vindas puts "Bem vindo ao jogo da adivinhação!" puts "Qual é o seu nome?" nome = gets puts "\n\n\n" puts "Começaremos o jogo para você, " + nome end

def sorteia_numero_secreto puts "\n\n\n" puts "Escolhendo um número secreto entre 0 e 200..." sorteado = 175 puts "\n\n\n" puts "Escolhido... que tal adivinhar hoje nosso número secreto?" sorteado end

def pede_um_numero(tentativa, limite_de_tentativas) puts "\n\n\n" puts "Tentativa " + tentativa.to_s + " de " + limite_de_tentativas.to_s puts "Entre com o número:" chute = gets puts "\n\n\n" puts "Será que você acertou? Você chutou " + chute chute.to_i end

def verifica_se_acertou(numero_secreto, chute) acertou = numero_secreto == chute

if acertou
    puts "Acertou!"
    return true
else
maior = numero_secreto > chute
    if maior
        puts "O número secreto é maior!"
        return false
    else
        puts "O número secreto é menor!"
        return false
    end
end

end

da_boas_vindas numero_secreto = sorteia_numero_secreto

limite_de_tentativas = 5

for tentativa in 1..limite_de_tentativas chute = pede_um_numero(tentativa, limite_de_tentativas) if verifica_se_acertou(numero_secreto, chute) break end end

Na função verifica_se_acertou, são passados 2 parâmetros. O primeiro (tentativa), é acessível pois está definido fora da função. Porém o segundo (chute), está dentro definido somente dentro do laço. Conforme meu entendimento da aula, só são acessíveis as variáveis que estão no escopo geral, digamos soltas, não de uma função para outra. Preciso de uma orientação. Obrigado.

1 resposta

Boa tarde, Leonardo!

É isso mesmo, as variáveis que são declaradas dentro de um uma função, são acessível somente dentro dela ou quando você executa a função, após isso ele perde o valores, porém quando você executa a função ela te da um retorno que você pode guardar em outra variável, array ou hash.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software