Memeriksa Kondisi dengan 'any'
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 13 dari 65.
Terkadang kamu perlu memeriksa apakah setidaknya satu elemen dalam list memenuhi kondisi tertentu, tanpa harus memeriksa setiap elemennya. Method any() menyediakan cara yang efisien untuk melakukannya dengan mengembalikan true begitu menemukan elemen pertama yang memenuhi kondisi pengujianmu.
method any() menerima fungsi pengujian yang mengembalikan true atau false untuk setiap elemen. Jika ada elemen yang lolos pengujian, any() langsung mengembalikan true. Jika tidak ada elemen yang lolos pengujian setelah seluruh list diperiksa, fungsi ini mengembalikan false.
List<double> prices = [15.99, 45.50, 120.00, 8.75];
// Periksa apakah ada item yang harganya lebih dari $100
bool hasExpensiveItem = prices.any((price) => price > 100);
print(hasExpensiveItem); // truemethod ini sangat berguna untuk skenario validasi saat kamu perlu mengetahui apakah setidaknya satu item memenuhi kriteria tertentu. method any() berhenti memeriksa begitu menemukan kecocokan, sehingga lebih efisien daripada menelusuri seluruh list secara manual saat kamu hanya perlu mengetahui apakah sesuatu ada.
Tantangan
MudahBuat program yang mengelola sistem keamanan dengan memeriksa apakah ada sensor di sebuah gedung yang mendeteksi aktivitas mencurigakan. Programmu harus:
- Membaca input string yang menunjukkan nama gedung
- Membaca beberapa input integer yang menunjukkan pembacaan sensor dari lantai yang berbeda (input akan berakhir saat kamu menerima
-1) - Membaca input integer yang menunjukkan nilai ambang batas peringatan
- Menggunakan method
any()untuk memeriksa apakah ada pembacaan sensor yang lebih besar dari atau sama dengan ambang batas peringatan - Mencetak hasil pemantauan keamanan dengan format persis seperti yang ditunjukkan di bawah ini
Misalnya, jika nama gedungnya adalah "Office Tower", pembacaan sensornya adalah 15, 23, 8, 45, 12, dan ambang batas peringatannya adalah 40, programmu harus menghasilkan:
Building: Office Tower
Sensor readings: [15, 23, 8, 45, 12]
Alert threshold: 40
Checking for readings >= 40
Alert triggered: true
Status: Security breach detected - immediate response requiredJika nama gedungnya adalah "Shopping Mall", pembacaan sensornya adalah 18, 25, 12, 30, dan ambang batas peringatannya adalah 50, programmu harus menghasilkan:
Building: Shopping Mall
Sensor readings: [18, 25, 12, 30]
Alert threshold: 50
Checking for readings >= 50
Alert triggered: false
Status: All systems normal - no threats detectedJika nama gedungnya adalah "Warehouse", pembacaan sensornya adalah 75, 82, dan ambang batas peringatannya adalah 70, programmu harus menghasilkan:
Building: Warehouse
Sensor readings: [75, 82]
Alert threshold: 70
Checking for readings >= 70
Alert triggered: true
Status: Security breach detected - immediate response requiredProgrammu harus menggunakan method any() untuk memeriksa apakah ada pembacaan sensor yang lebih besar dari atau sama dengan ambang batas peringatan. Tampilkan "Security breach detected - immediate response required" jika ada sensor yang memicu peringatan, atau "All systems normal - no threats detected" jika tidak ada sensor yang melampaui ambang batas.
Coba sendiri
import 'dart:io';
void main() {
// Baca nama gedung
String? buildingName = stdin.readLineSync();
// Baca nilai sensor hingga menemukan -1
List<int> sensorReadings = [];
while (true) {
int reading = int.parse(stdin.readLineSync()!);
if (reading == -1) {
break;
}
sensorReadings.add(reading);
}
// Baca ambang batas peringatan
int alertThreshold = int.parse(stdin.readLineSync()!);
// TODO: Tulis kodemu di bawah ini
// Gunakan method any() untuk memeriksa apakah ada nilai sensor yang >= ambang batas peringatan
// Cetak hasil dalam format yang diminta
print('Building: $buildingName');
print('Sensor readings: $sensorReadings');
print('Alert threshold: $alertThreshold');
print('Checking for readings >= $alertThreshold');
// Cetak hasil apakah peringatan terpicu dan pesan status
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online