Menu
Coddy logo textTech

Valores de Retorno

Parte da seção Fundamentals do Journey de Rust da Coddy — lição 51 de 75.

A instrução return em um método é usada para especificar o valor ou valores que o método deve produzir como sua saída. Por exemplo, o seguinte método produzirá 100:

fn function_name() -> i32 {
	return 100;
}

Observe que a função está retornando um tipo de dado i32 por causa do sinal de seta ->.

Para passar o valor de retorno para uma variável, escreva:

let number: i32 = function_name();

Agora a variável number conterá 100 porque isso é o que o método retornou.

Observe que o tipo de retorno do método (i32 neste caso) deve corresponder ao tipo de dado da variável onde você está armazenando o valor retornado.

challenge icon

Desafio

Fácil

Cada caso de teste possui três entradas.

A primeira entrada indica quantas vezes as iterações devem ser realizadas, e as duas últimas entradas são números sobre os quais realizaremos operações.

Crie um método que receba dois argumentos e retorne o maior número entre os dois. Se ambos forem iguais, retorne um deles.

Itere iterations vezes e, para cada iteração, faça o seguinte:

  • Chame o método com num1, num2 e salve o resultado em uma variável.
  • Divida o maior número entre os dois por 2 e, em seguida, substitua a variável original maior pelo novo valor resultante.
  • Imprima o novo valor.  
  • Continue fazendo isso até que o programa tenha iterado iterations vezes ou um dos números seja menor que 2.

Note que você já possui o esqueleto do código!

Folha de consulta

A instrução return especifica o valor que uma função produz como saída:

fn function_name() -> i32 {
    return 100;
}

Use a seta -> para especificar o tipo de retorno. Armazene o valor retornado em uma variável:

let number: i32 = function_name();

O tipo de retorno deve corresponder ao tipo de dado da variável onde você armazena o valor retornado.

Experimente você mesmo

use std::io;

fn bigger(arg1: f64, arg2: f64) -> f64 {
    // Complete a função

}

fn main() {
    let mut input_iter = String::new();
    let mut input_num1 = String::new();
    let mut input_num2 = String::new();

    io::stdin().read_line(&mut input_iter).unwrap();
    io::stdin().read_line(&mut input_num1).unwrap();
    io::stdin().read_line(&mut input_num2).unwrap();

    let iter: i32 = input_iter.trim().parse().unwrap();
    let mut num1: f64 = input_num1.trim().parse().unwrap();
    let mut num2: f64 = input_num2.trim().parse().unwrap();

    for _ in 0..iter {
        // Escreva seu código abaixo
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentals