'&&' 문제
주어진 문제는 학생의 세 과목(국어, 영어, 수학) 점수가 모두 80점 이상인지 확인하는 함수 checkGrade를 작성하는 것입니다. 함수는 각 과목 점수가 80점 이상이면 true를 반환하고, 그렇지 않으면 false를 반환해야 합니다.
const grade = {
국어: 90,
영어: 80,
수학: 100,
};
// 국어, 영어, 수학 점수가 모두 80점 이상이면 true, 아니면 false를 반환해주세요.
function checkGrade(grade) {
if (grade.국어 >= 80 && grade.영어 >= 80 && grade.수학 >= 80) {
return true;
} else {
return false;
}
}
console.log(checkGrade(grade)); // true
코드 동작 설명
- 객체 선언: grade 객체는 학생의 각 과목 점수를 키-값 쌍으로 저장합니다.
- 함수 선언: checkGrade 함수는 grade 객체를 매개변수로 받습니다.
- 조건문 사용: if 조건문을 사용하여 국어, 영어, 수학 점수가 모두 80점 이상인지 확인합니다. && 연산자는 모든 조건이 참일 때만 전체 조건을 참으로 평가합니다.
- 참/거짓 반환: 조건이 모두 참이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
- 결과 출력: console.log(checkGrade(grade));를 통해 결과를 콘솔에 출력합니다. 위 예제에서는 모든 점수가 80점 이상이기 때문에 true가 출력됩니다.
비슷한 예제
이번에는 과목이 더 추가된 예제를 만들어보겠습니다. 새로운 과목(과학, 역사)을 포함하여 모든 과목의 점수가 70점 이상인지 확인하는 함수를 작성해보겠습니다.
const newGrades = {
국어: 85,
영어: 78,
수학: 88,
과학: 92,
역사: 70
};
// 모든 과목 점수가 70점 이상이면 true, 아니면 false를 반환해주세요.
function checkAllGrades(grades) {
if (grades.국어 >= 70 && grades.영어 >= 70 && grades.수학 >= 70 && grades.과학 >= 70 && grades.역사 >= 70) {
return true;
} else {
return false;
}
}
console.log(checkAllGrades(newGrades)); // true
비슷한 예제 설명
- 객체 변경: 이번에는 newGrades 객체를 사용하여 과목을 확장했습니다.
- 조건문 확장: checkAllGrades 함수는 모든 과목의 점수가 70점 이상인지 확인합니다.
- 출력 결과: 모든 과목 점수가 70점 이상이기 때문에 true가 출력됩니다.
** 중복된 코드를 더 간결하게 작성할 수 있습니다. if-else 구문을 삼항 연산자로 대체할 수 있으며, 모든 조건이 true임을 반환할 때 return 문을 간단히 할 수 있습니다.
function checkGrade(grade) {
return grade.국어 >= 80 && grade.영어 >= 80 && grade.수학 >= 80;
}
'||' 연산자 문제
이번 문제는 학생의 여러 과목 중에서 하나 이상의 과목 점수가 90점 이상인지 확인하는 함수 checkAnyHighScore를 작성하는 것입니다. 함수는 조건을 만족하면 true를 반환하고, 그렇지 않으면 false를 반환해야 합니다.
const grades = {
국어: 75,
영어: 88,
수학: 92,
과학: 70,
역사: 89
};
// 하나라도 90점 이상인 과목이 있는지 확인하여, 있으면 true, 없으면 false를 반환해주세요.
function checkAnyHighScore(grades) {
return grades.국어 >= 90 || grades.영어 >= 90 || grades.수학 >= 90 || grades.과학 >= 90 || grades.역사 >= 90;
}
console.log(checkAnyHighScore(grades)); // true
코드 설명
- 객체 선언: grades 객체는 학생의 과목 점수를 저장하고 있습니다. 예를 들어, 수학: 92는 수학 점수가 92점임을 나타냅니다.
- || 연산자 사용: checkAnyHighScore 함수는 || 논리 연산자를 사용하여 하나 이상의 조건이 참인지 확인합니다. || 연산자는 여러 조건 중 하나라도 참이면 전체 조건을 참으로 평가합니다.
- 조건 평가 및 반환: 모든 과목에 대해 90점 이상인지 평가하고, 그중 하나라도 조건을 만족하면 true를 반환합니다. 조건을 만족하는 과목이 없다면 false를 반환합니다.
- 결과 출력: console.log(checkAnyHighScore(grades));를 통해 결과를 콘솔에 출력합니다. 위 예제에서는 수학 점수가 92점으로 조건을 만족하므로 true가 출력됩니다.
응용 문제
이번 문제는 학생의 점수가 다음 두 가지 조건 중 하나를 만족하는지 확인하는 함수 checkComplexCondition을 작성하는 것입니다:
- 모든 과목(국어, 영어, 수학)의 점수가 85점 이상인 경우
- 하나라도 95점 이상인 과목이 있는 경우
이 두 조건 중 하나라도 만족하면 true를 반환하고, 그렇지 않으면 false를 반환해야 합니다.
const scores = {
국어: 86,
영어: 94,
수학: 82,
과학: 95,
역사: 80
};
// 두 가지 조건 중 하나라도 만족하면 true, 그렇지 않으면 false를 반환하는 함수를 작성하세요.
function checkComplexCondition(scores) {
return (
(scores.국어 >= 85 && scores.영어 >= 85 && scores.수학 >= 85) ||
(scores.국어 >= 95 || scores.영어 >= 95 || scores.수학 >= 95 || scores.과학 >= 95 || scores.역사 >= 95)
);
}
console.log(checkComplexCondition(scores)); // true
코드 설명
- 객체 선언: scores 객체는 학생의 과목 점수를 저장합니다. 예를 들어, 국어: 86은 국어 점수가 86점임을 나타냅니다.
- && 연산자 사용: scores.국어 >= 85 && scores.영어 >= 85 && scores.수학 >= 85 조건은 모든 과목의 점수가 85점 이상인지 확인합니다. 모든 조건이 참이어야 전체 조건이 참이 됩니다.
- || 연산자 사용: (scores.국어 >= 95 || scores.영어 >= 95 || scores.수학 >= 95 || scores.과학 >= 95 || scores.역사 >= 95) 조건은 하나라도 95점 이상인 과목이 있는지를 확인합니다.
- 전체 조건 평가: 두 조건 (조건 1) || (조건 2) 중 하나라도 참이면 true를 반환합니다.
- 결과 출력: console.log(checkComplexCondition(scores));를 통해 결과를 콘솔에 출력합니다. 예제에서는 과학 점수가 95점으로 조건 2를 만족하므로 true가 출력됩니다.
'💻 JavaScript' 카테고리의 다른 글
| JavaScript 언어의 특징과 역사 (0) | 2024.07.22 |
|---|