Menu
Coddy logo textTech

Возвращаемые значения

Часть раздела Fundamentals путешествия по Rust на Coddy — урок 51 из 75.

Оператор return в методе используется для указания значения или значений, которые метод должен выдать в качестве результата. Например, следующий метод выведет 100:

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

Обратите внимание, что функция возвращает тип данных i32 из-за знака стрелки ->.

Чтобы передать возвращаемое значение в переменную, напишите:

let number: i32 = function_name();

Теперь переменная number будет содержать 100, потому что это то, что вернул метод.

Обратите внимание, что тип возвращаемого значения метода (в данном случае i32) должен соответствовать типу данных переменной, в которой вы сохраняете возвращаемое значение.

challenge icon

Задание

Легко

Каждый тестовый случай имеет три входных значения.

Первое входное значение указывает, сколько раз нужно выполнить итерации, а последние два входных значения — это числа, над которыми мы будем выполнять операции.

Создайте метод, который принимает два аргумента и возвращает большее из двух чисел. Если они равны, верните любое из них.

Выполните итерации iterations раз и для каждой итерации сделайте следующее:

  • Вызовите метод с num1, num2 и сохраните результат в переменную.
  • Разделите большее число из двух на 2, а затем замените исходную переменную, содержащую большее значение, новым результатом.
  • Выведите новое значение.  
  • Продолжайте выполнение до тех пор, пока программа не выполнит iterations итераций или пока одно из чисел не станет меньше 2.

Обратите внимание, что у вас уже есть скелет кода!

Шпаргалка

Оператор return указывает значение, которое функция выдает в качестве результата:

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

Используйте стрелку -> для указания типа возвращаемого значения. Сохраните возвращаемое значение в переменной:

let number: i32 = function_name();

Тип возвращаемого значения должен соответствовать типу данных переменной, в которой вы сохраняете возвращаемое значение.

Попробуйте сами

use std::io;

fn bigger(arg1: f64, arg2: f64) -> f64 {
    // Завершите функцию

}

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 {
        // Напишите свой код ниже
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals