Menu
Coddy logo textTech

'every'로 조건 확인하기

Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 14번째.

any()가 적어도 하나의 요소가 조건을 충족하는지 확인하는 반면, 때로는 리스트의 모든 요소가 특정 요구 사항을 충족하는지 확인해야 할 때가 있습니다. every() 메서드는 모든 단일 요소를 조건에 대해 테스트하고, 모든 요소가 통과한 경우에만 true를 반환함으로써 이 기능을 제공합니다.

every() 메서드는 각 요소에 대해 true 또는 false를 반환하는 테스트 함수를 인자로 받습니다. 만약 어떤 요소라도 테스트를 통과하지 못하면, every()는 즉시 false를 반환합니다. 모든 요소가 테스트를 통과했을 때만 true를 반환합니다.

List<int> examScores = [75, 82, 68, 91, 77];

// 모든 학생이 통과했는지 확인 (점수 > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed);  // true

이 메서드는 진행하기 전에 모든 항목이 특정 기준을 충족하는지 확인해야 하는 유효성 검사 시나리오에서 특히 유용합니다. every() 메서드는 테스트에 실패하는 요소를 찾는 즉시 확인을 중단하므로, 전체적인 준수가 필요한 대규모 리스트에서 효율적입니다.

challenge icon

챌린지

쉬움

한 배치의 모든 제품이 요구되는 표준을 충족하는지 확인하여 품질 관리 시스템을 관리하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:

  1. 공장 이름을 나타내는 문자열 입력을 읽습니다.
  2. 제품 품질 점수를 나타내는 여러 개의 정수 입력을 읽습니다 (입력은 -1을 받으면 종료됩니다).
  3. 최소 품질 표준 임계값을 나타내는 정수 입력을 읽습니다.
  4. every() 메서드를 사용하여 모든 제품 점수가 최소 임계값보다 크거나 같은지 확인합니다.
  5. 아래에 표시된 정확한 형식으로 품질 관리 결과를 출력합니다.

예를 들어, 공장 이름이 "Electronics Factory"이고, 품질 점수가 85, 92, 78, 88, 95이며, 최소 임계값이 75인 경우 프로그램은 다음과 같이 출력해야 합니다:

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

공장 이름이 "Textile Mill"이고, 품질 점수가 68, 82, 74, 91이며, 최소 임계값이 70인 경우 프로그램은 다음과 같이 출력해야 합니다:

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

공장 이름이 "Food Processing"이고, 품질 점수가 95, 98, 92이며, 최소 임계값이 90인 경우 프로그램은 다음과 같이 출력해야 합니다:

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

프로그램은 반드시 every() 메서드를 사용하여 모든 품질 점수가 최소 임계값보다 크거나 같은지 확인해야 합니다. 모든 제품이 표준을 충족하면 "Batch approved for shipment"를 출력하고, 하나라도 최소 요구 사항을 충족하지 못하면 "Batch rejected - quality improvement required"를 출력하세요.

치트 시트

every() 메서드는 리스트의 모든 요소가 특정 조건을 만족하는지 확인합니다. 모든 요소가 테스트를 통과할 때만 true를 반환하고, 하나라도 실패하면 false를 반환합니다.

List<int> examScores = [75, 82, 68, 91, 77];

// 모든 학생이 통과했는지 확인 (점수 > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed);  // true

every() 메서드는 테스트에 실패하는 요소를 찾는 즉시 확인을 중단하므로, 전체적인 준수 여부를 확인해야 하는 대규모 리스트에서 효율적입니다.

직접 해보기

import 'dart:io';

void main() {
  // 공장 이름 읽기
  String? factoryName = stdin.readLineSync();
  
  // -1이 입력될 때까지 품질 점수 읽기
  List<int> qualityScores = [];
  while (true) {
    int score = int.parse(stdin.readLineSync()!);
    if (score == -1) {
      break;
    }
    qualityScores.add(score);
  }
  
  // 최소 임계값 읽기
  int minThreshold = int.parse(stdin.readLineSync()!);
  
  // TODO: 아래에 코드를 작성하세요
  // every() 메서드를 사용하여 모든 점수가 최소 기준을 충족하는지 확인하세요
  
  // 결과를 요구된 형식으로 출력
  print('Factory: $factoryName');
  print('Quality scores: $qualityScores');
  print('Minimum standard: $minThreshold');
  print('Checking if all scores >= $minThreshold');
  // 모든 제품의 통과 여부와 최종 상태를 출력하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 & 흐름의 모든 레슨