Menu
Coddy logo textTech

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);  // true

Ta 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.

challenge icon

Wyzwanie

Łatwy

Utwó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:

  1. Wczytać dane tekstowe reprezentujące nazwę fabryki
  2. Wczytywać kolejne liczby całkowite reprezentujące wyniki jakości produktów (wczytywanie zakończy się po otrzymaniu -1)
  3. Wczytać liczbę całkowitą reprezentującą minimalny próg standardu jakości
  4. Użyć metody every(), aby sprawdzić, czy wyniki wszystkich produktów są większe lub równe minimalnemu progowi
  5. 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 shipment

Jeś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 required

Jeś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 shipment

Twó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
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Dart online