'every'로 조건 확인하기
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨. 65개 중 14번째.
any()는 하나 이상의 요소가 조건을 만족하는지 확인하지만, 때로는 목록의 모든 요소가 특정 요구 사항을 충족하는지 확인해야 합니다. every() 메서드는 모든 요소를 조건에 따라 테스트하고, 모든 요소가 통과할 경우에만 true를 반환하여 이 기능을 제공합니다.
every() 메서드는 각 요소에 대해 true 또는 false를 반환하는 테스트 함수를 받습니다. 요소 중 하나라도 테스트를 통과하지 못하면 every()는 즉시 false를 반환합니다. 모든 요소가 테스트를 통과할 때만 true를 반환합니다.
List<int> examScores = [75, 82, 68, 91, 77];
// 모든 학생이 합격했는지 확인합니다 (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // true이 메서드는 진행하기 전에 모든 항목이 특정 기준을 충족하는지 확인해야 하는 유효성 검사 상황에서 특히 유용합니다. every() 메서드는 테스트를 통과하지 못하는 요소를 찾는 즉시 검사를 중단하므로, 모든 항목이 기준을 충족해야 하는 대규모 목록에서 효율적입니다.
챌린지
쉬움모든 제품이 필수 기준을 충족하는지 확인하여 한 배치의 품질 관리 시스템을 관리하는 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다.
- 공장 이름을 나타내는 문자열 입력을 읽습니다.
- 제품 품질 점수를 나타내는 여러 정수 입력을 읽습니다(입력은
-1을 받으면 종료됩니다). - 최소 품질 기준 임계값을 나타내는 정수 입력을 읽습니다.
every()메서드를 사용하여 모든 제품 점수가 최소 임계값보다 크거나 같은지 확인합니다.- 아래에 표시된 정확한 형식으로 품질 관리 결과를 출력합니다.
예를 들어, 공장 이름이 "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"를 표시하세요.
직접 해보기
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');
// 모든 제품의 통과 여부와 최종 상태를 출력합니다
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구2함수형 리스트 연산
'map'으로 변환하기'where'로 필터링하기'.toList()' 사용하기'any'로 조건 확인하기'every'로 조건 확인하기'firstWhere'로 찾기요약 - 데이터 필터링직접 연습해 보세요: 온라인 Dart 컴파일러