Wartości zwracane
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 51 z 75.
Instrukcja return w metodzie służy do określenia wartości, które metoda powinna zwrócić jako wynik. Na przykład poniższa metoda zwróci 100:
fn function_name() -> i32 {
return 100;
}Zauważ, że funkcja zwraca dane typu i32 ze względu na znak strzałki ->.
Aby przypisać wartość zwracaną do zmiennej, napisz:
let number: i32 = function_name();Teraz zmienna number będzie przechowywać wartość 100, ponieważ właśnie to zwróciła metoda.
Pamiętaj, że typ zwracany przez metodę (w tym przypadku
i32) musi odpowiadać typowi danych zmiennej, w której zapisujesz zwróconą wartość.
Wyzwanie
ŁatwyKażdy przypadek testowy ma trzy dane wejściowe.
Pierwsza dana wejściowa określa, ile razy wykonać iteracje, a dwie ostatnie to liczby, na których będziemy wykonywać operacje.
Utwórz metodę, która przyjmuje dwa argumenty i zwraca większą z tych dwóch liczb. Jeśli obie są równe, zwróć jedną z nich.
Wykonaj iterację iterations razy, a w każdej iteracji:
- Wywołaj metodę z argumentami
num1,num2i zapisz wynik w zmiennej. - Podziel większą z tych dwóch liczb przez
2, a następnie zastąp pierwotną większą zmienną nową wartością wyniku. - Wyświetl nową wartość.
- Kontynuuj, aż program wykona
iterationsiteracji lub jedna z liczb będzie mniejsza niż 2.
Zauważ, że masz już szkielet kodu!
Spróbuj swoich sił
use std::io;
fn bigger(arg1: f64, arg2: f64) -> f64 {
// Uzupełnij funkcję
}
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 {
// Napisz swój kod poniżej
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online