Menu
CoddyTech

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 musisz 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 którykolwiek element nie przejdzie testu, 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 związanych z walidacją, gdy przed kontynuowaniem musisz upewnić się, że wszystkie elementy spełniają określone kryteria. Metoda every() przestaje sprawdzać, gdy tylko znajdzie element, który nie przejdzie testu, dzięki czemu jest wydajna w przypadku dużych list, w których wszystkie elementy muszą spełniać wymagania.

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ć tekst reprezentujący nazwę fabryki
  2. Wczytać kilka wartości całkowitych reprezentujących oceny jakości produktów (wczytywanie zakończy się po otrzymaniu -1)
  3. Wczytać wartość całkowitą reprezentującą minimalny próg standardu jakości
  4. Użyć metody every(), aby sprawdzić, czy wszystkie oceny 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", oceny jakości to 85, 92, 78, 88, 95, a minimalny próg wynosi 75, 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", oceny jakości to 68, 82, 74, 91, a minimalny próg wynosi 70, 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", oceny jakości to 95, 98, 92, a minimalny próg wynosi 90, 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 oceny 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 wymogu.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj nazwę fabryki
  String? factoryName = stdin.readLineSync();
  
  // Wczytuj 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);
  }
  
  // Wczytaj minimalny próg
  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
  
  // Wypisz wyniki w wymaganym formacie
  print('Factory: $factoryName');
  print('Quality scores: $qualityScores');
  print('Minimum standard: $minThreshold');
  print('Checking if all scores >= $minThreshold');
  // Wypisz, czy wszystkie produkty przeszły kontrolę, oraz końcowy status
}
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