Warunki z użyciem 'every'
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 14 z 65.
Podczas gdy any() sprawdza, czy co najmniej jeden element spełnia warunek, czasami trzeba zweryfikować, czy wszystkie elementy na liście spełniają określone wymaganie. Metoda every() zapewnia tę funkcjonalność, sprawdzając każdy element pod kątem warunku i zwracając true tylko wtedy, gdy wszystkie go spełniają.
Metoda every() przyjmuje funkcję testującą, która zwraca true lub false dla każdego elementu. Jeśli dowolny element nie przejdzie testu, metoda every() natychmiast zwraca false. Zwraca true tylko wtedy, gdy każdy element przejdzie test.
List<int> examScores = [75, 82, 68, 91, 77];
// Sprawdź, czy wszyscy uczniowie zdali (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // trueTa metoda jest szczególnie przydatna w sytuacjach wymagających walidacji, gdy przed kontynuowaniem trzeba się upewnić, że wszystkie elementy spełniają określone kryteria. Metoda every() przestaje sprawdzać elementy, gdy tylko znajdzie element, który nie przechodzi testu, dzięki czemu jest wydajna w przypadku dużych list, dla których trzeba zapewnić zgodność wszystkich elementów.
Wyzwanie
ŁatwyUtwórz program, który zarządza systemem kontroli jakości, sprawdzając, czy wszystkie produkty w partii spełniają wymagane standardy. Twój program powinien:
- Wczytać dane tekstowe reprezentujące nazwę fabryki
- Wczytywać kolejne liczby całkowite reprezentujące wyniki jakości produktów (wczytywanie zakończy się po otrzymaniu
-1) - Wczytać liczbę całkowitą reprezentującą minimalny próg standardu jakości
- Użyć metody
every(), aby sprawdzić, czy wyniki wszystkich produktów są większe lub równe minimalnemu progowi - Wyświetlić wyniki kontroli jakości w dokładnym formacie pokazanym poniżej
Na przykład, jeśli nazwa fabryki to "Electronics Factory", wyniki jakości to 85, 92, 78, 88, 95, a minimalny próg wynosi 75, Twój program powinien wyświetlić:
Factory: Electronics Factory
Quality scores: [85, 92, 78, 88, 95]
Minimum standard: 75
Checking if all scores >= 75
All products passed: true
Status: Batch approved for shipmentJeśli nazwa fabryki to "Textile Mill", wyniki jakości to 68, 82, 74, 91, a minimalny próg wynosi 70, Twój program powinien wyświetlić:
Factory: Textile Mill
Quality scores: [68, 82, 74, 91]
Minimum standard: 70
Checking if all scores >= 70
All products passed: false
Status: Batch rejected - quality improvement requiredJeśli nazwa fabryki to "Food Processing", wyniki jakości to 95, 98, 92, a minimalny próg wynosi 90, Twój program powinien wyświetlić:
Factory: Food Processing
Quality scores: [95, 98, 92]
Minimum standard: 90
Checking if all scores >= 90
All products passed: true
Status: Batch approved for shipmentTwój program musi użyć metody every(), aby sprawdzić, czy wszystkie wyniki jakości są większe lub równe minimalnemu progowi. Wyświetl "Batch approved for shipment", jeśli wszystkie produkty spełniają standard, lub "Batch rejected - quality improvement required", jeśli którykolwiek produkt nie spełnia minimalnego wymagania.
Spróbuj swoich sił
import 'dart:io';
void main() {
// Odczytaj nazwę fabryki
String? factoryName = stdin.readLineSync();
// Odczytuj oceny jakości, aż pojawi się -1
List<int> qualityScores = [];
while (true) {
int score = int.parse(stdin.readLineSync()!);
if (score == -1) {
break;
}
qualityScores.add(score);
}
// Odczytaj próg minimalny
int minThreshold = int.parse(stdin.readLineSync()!);
// TODO: Napisz swój kod poniżej
// Użyj metody every(), aby sprawdzić, czy wszystkie oceny spełniają minimalny standard
// Wyświetl wyniki w wymaganym formacie
print('Factory: $factoryName');
print('Quality scores: $qualityScores');
print('Minimum standard: $minThreshold');
print('Checking if all scores >= $minThreshold');
// Wyświetl informację, czy wszystkie produkty przeszły kontrolę, oraz status końcowy
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gościPoćwicz samodzielnie: Kompilator Dart online