Возвращаемые значения
Часть раздела Fundamentals путешествия по Rust на Coddy — урок 51 из 75.
Оператор return в методе используется для указания значения или значений, которые метод должен выдать в качестве результата. Например, следующий метод выведет 100:
fn function_name() -> i32 {
return 100;
}Обратите внимание, что функция возвращает тип данных i32 из-за знака стрелки ->.
Чтобы передать возвращаемое значение в переменную, напишите:
let number: i32 = function_name();Теперь переменная number будет содержать 100, потому что это то, что вернул метод.
Обратите внимание, что тип возвращаемого значения метода (в данном случае
i32) должен соответствовать типу данных переменной, в которой вы сохраняете возвращаемое значение.
Задание
ЛегкоКаждый тестовый случай имеет три входных значения.
Первое входное значение указывает, сколько раз нужно выполнить итерации, а последние два входных значения — это числа, над которыми мы будем выполнять операции.
Создайте метод, который принимает два аргумента и возвращает большее из двух чисел. Если они равны, верните любое из них.
Выполните итерации 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 {
// Напишите свой код ниже
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод