Rangkuman: Menemukan Elemen
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 41 dari 66.
Tantangan
MudahKamu akan menerima dua input. Input pertama adalah daftar angka yang dipisahkan dengan koma (misalnya, 10,20,30,40), dan input kedua adalah angka target yang perlu dicari. Parse angka-angka yang dipisahkan dengan koma menjadi vector, lalu cari angka target. Gunakan .iter().position() untuk menemukan indeks angka target. Fungsi ini mengembalikan Option<usize>. Tangani kedua kasus menggunakan match dan cetak pesan yang sesuai.
Persyaratan:
- Baca input pertama (angka-angka yang dipisahkan dengan koma) dan hapus whitespace di sekitarnya
- Pisahkan input berdasarkan koma dan parse setiap bagian menjadi
i32untuk membuat vector - Baca input kedua (angka target) dan hapus whitespace di sekitarnya
- Parse angka target menjadi
i32 - Gunakan
.iter().position(|&x| x == target)untuk mencari target di dalam vector - Gunakan ekspresi
matchuntuk menanganiOptionyang dikembalikan oleh.position() - Pada arm
Some(index), cetak:Found at index [index] - Pada arm
None, cetak:Not found
Input:
- Baris pertama: Angka-angka yang dipisahkan dengan koma (misalnya,
10,20,30,40) - Baris kedua: Angka target yang perlu dicari (misalnya,
30)
Output:
- Jika target ditemukan:
Found at index [index] - Jika target tidak ditemukan:
Not found
Coba sendiri
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Baca angka-angka yang dipisahkan koma
let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
// Baca angka yang dicari
let target_input = lines.next().unwrap().unwrap().trim().to_string();
// Ubah angka-angka yang dipisahkan koma menjadi vektor
let numbers: Vec<i32> = numbers_input
.split(',')
.map(|s| s.trim().parse().unwrap())
.collect();
// Ubah angka yang dicari menjadi nilai numerik
let target: i32 = target_input.parse().unwrap();
// TODO: Tulis kodemu di bawah ini
// Gunakan .iter().position() untuk menemukan angka yang dicari dan match untuk menangani hasilnya
}Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode Akhir6Menangani Ketiadaan dengan 'Option'
Apa itu 'Option'?Menggunakan 'match' dengan 'Option'is_some() dan is_none()Membuka bungkus 'Option'Metode expectMemberikan Nilai Default: unwrap_orRangkuman: Menemukan ElemenLatihan sendiri: Compiler Rust online