논리연산자 || 와 &&
각도기 문제풀다가 깨닫게된 아주 기본적이지만 놓고 지나쳤던 논리연산자
**문제 설명
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
처음에는
function solution(angle) {
if (0<angle<90) {
return 1
}
else if (angle === 90){
return 2
}
else if (90<angle<180){
return 3
}
else if (angle === 180) {
return 4
}
};
이렇게 쓰면 간단하게 될줄알았는데 자꾸 return 값이 1만나오길래 왜 밑에 식으로 못내려가나 했더니
매개변수의 조건을 저렇게 중복거는건 그냥 내가 생각하는 수학기호고
논리 연산자를 써야한다는 것을 알았다.
function solution(angle) {
if (angle > 0 && angle <90) {
return 1
}
else if (angle === 90){
return 2
}
else if (angle > 90 && angle <180){
return 3
}
else if (angle === 180) {
return 4
}
};
이거 덕분에 논리연산자를 찾아보면서 알게된점
논리합 연산자 || 는
둘중에 하나만 true면 반환하지만 왼쪽 피연산자를 우선시 판단한다.
| 논리합 연산자 패턴 | 단축평가 결과 |
| 값 || true | 값 |
| 값 || false | 값 |
| true || 값 | true |
| false || 값 | 값 |
| 값A || 값B | 값A |
출처: https://curryyou.tistory.com/193 [카레유:티스토리]
논리곱 연산자 &&는
둘다 true여야만 반환하므라 왼쪽 피연산자가 false면 바로 false로 판단한다.
| 논리곱 연산자 패턴 | 단축평가 결과 |
| false && 값 | false |
| true && 값 | 값 |
| 값 && false | false |
| 값 && true | true |
| 값A && 값B | 값B |
출처: https://curryyou.tistory.com/193 [카레유:티스토리]
**다른 풀이중 이해되는것 중에 깔끔하게 쓰는 것 (삼항연산자 이용)
function solution(angle) {
return angle < 90 ? 1 : angle === 90 ? 2 : angle < 180 ? 3 : 4;
} // 90도 보다 낮아? 1뽑고 아니야? 90도랑같아? 2뽑고 아니야? 180도보다 낮아? 3뽑고
// 아니야? 그럼 4뽑아
--------------------------------------------------------------------------------------------------------------------------------------------
for문과 함수의 나가는 부분에 위치 확실히 보면서 return 넣어주기
function solution(n) {
let answer = 0;
for (let i=0; i<=n; i++){
if (i%2 == 0) { // 이부분에서 계속 if(n%2 == 0) 으로 해놔서 안되는 이유를 오래해맸음
answer += i;
}
} // 자꾸 여기에 return 넣어줘서 함수가 실행안됐었음
return answer;
}
//계속 더해야한다 => for문 돌리기 , 함수끝나는 곳에서 return이 나와야한다.
// n을 2로 나눠서 짝수를 판단하는게아니라 n안에있는 요소i들 을 2로나눠서 짝수로판단
다른 풀이중 이해되는것 중에 알아 가는것 (요소(i)를 2부터 시작하고 for문에 증감을 더하기할당 +=를 이용해 2씩 추가하게하여 if문을 생략해서 짧게만듬)
function solution(n) {
var answer = 0;
for(let i=2 ; i<=n ; i+=2) // i를 2부터시작하고 더하기할당+=를 활용해 요소를2씩추가
answer += i;
return answer;
}'Javascript > 프로그래머스 0단계부터' 카테고리의 다른 글
| 2023.12.19 (2) | 2023.12.19 |
|---|