Roen의 iOS 개발로그

JavaScript 기초2(Python과 비교하여, ES6 기준) : 조건문

by Steady On

📣 이 자료는 ⎡혼자 공부하는 자바스크립트⎦책과 MDN Web docs를 기반으로 작성되었습니다.

그리고 개인적으로 공부하고 이해한 내용을 바탕으로 정리하는 용도로 작성되었으므로 이해를 돕기위한 예시는 최소화하였습니다.

 

2. 조건문

 

<if 조건문>

내가 정말 자바스크립트를 공부하면서 귀찮다고 느끼는 것 중 하나가 괄호이다.... 파이썬의 if 조건문은 이렇게 매우매우 심플하다. if 조건문만도 사용할 수 있고, 필요하다면 elif와 else를 추가해서 쓰면된다.

if 조건문:
	실행1
elif 조건문:
	실행2
else:
	실행3

반면 자바스크립트의 조건문은 괄호의 범벅이라고 할 수 있다.

if (조건문) {
	실행1
} else if (조건문2) {
	실행2
} else {
	실행3
}

파이썬을 먼저 공부한 나는 저 조건문에 달아줘야 하는 괄호를 자꾸 빼먹어서 계속 같은 에러를 마주했었다(첨엔 뭐가 잘못됐는지도 몰랐음). 만약 조건문을 부정하기위해 부정 연산자를 쓰려면 (!(조건문)) 이렇게 괄호를 묶은 상태로 부정연산자를 붙이고 밖에 괄호를 또 둘러줘야한다...(귀찮...) 어쨌든 파이썬과 마찬가지로 if문만 써도 되고 else if와 else는 필요에 따라 추가하면 된다.

 

<Switch>

이건 파이썬에 없는 신기한 문법인데, 어떤 연산을 통해서 나오는 값들의 각각을 case로 구분해서 실행을 정해주는 조건문이다.

switch (n%3) {
	case 0:
    	console.log('나누어 떨어짐')
    	break
    case 1:
    	console.log('나머지 1')
    	break
    case 2:
    	console.log('나머지 2')
        break
    default:
    	console.log('오잉?')
        break
}

이런식인데 일단 연산을 통해 나올 수 있는 값을 미리 예상해서 각 값에 따라 실행해줄 문장을 작성한다. 그리고 꼭 break를 해주어야 다음으로 넘어갈 수가 있다! 그리고 default는 위에서 언급한 case의 값이 아닌경우에 실행될 디폴트를 정해주는 것이다. 막상 배웠는데 얘는 여태 알고리즘 문제풀면서 한번도 써본적은 없다....

 

<조건부 연산자(삼항식)>

이건 정말 내가 사랑하는 조건문이다! 이 삼항식 덕분에 엥간치 간단한 if~else 구문은 다 삼항식으로 바꿀 수가 있다.

조건 ? true일때 실행 : false일때 실행

 

<삼항식을 사용한 알고리즘 예제>

2022.08.07 - [Coding Test/Programmers] - 02. 짝수와 홀수

 

02. 짝수와 홀수

[#프로그래머스 - 짝수와 홀수] : 난이도 '하하' https://school.programmers.co.kr/learn/courses/30/lessons/12937 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞..

steady-on.tistory.com

2022.08.09 - [Coding Test/Programmers] - 19. 수박수박수박수박수박수?

 

19. 수박수박수박수박수박수?

[ 프로그래머스 - 수박수박수박수박수박수?] 난이도 '중하' https://programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자.

steady-on.tistory.com

 

<짧은 조건문>

JavaScript기초1 에서 설명한 논리곱과 논리합을 이용하는 조건문이다.

 조건 || false일때 실행할 문장
 조건 && true일때 실행할 문장

논리곱과 논리합은 true, false를 반환하는게 아니라 마지막에 검사한 논리를 반환한다는 점을 이용한 조건문이다. 예를 들어 논리합의 경우는 어느한쪽이 true이면 true이다. 앞에 적힌 조건이 false이면 이 논리합이 true인지 확인하기위해 우변에 있는 실행문장을 검사해야한다. 그리고 false인 경우는 앞글에서 말했듯 false, null, undefined, '', [], NaN 6가지 밖에 없으므로 실행문장이 6가지를 제외한 것이라면 무엇이든 true가 된다. 그럼 마지막에 검사한 논리는 실행할 문장이 되고 그걸 반환하기 때문에  false일때 우변을 실행한다는 말이 된다. 논리곱의 경우도 마찬가지이다. 앞의 조건이 true라면, 우변을 검사할 것이고 우변의 검사가 마지막 검사이므로 실행문을 반환해서 실행이 된다. 짧은 조건문은 표현이 모호한 측면이 많아서 잘 쓰이지는 않는다고 하지만, 알아두면 나쁠 건 없을 것 같다.(다음 알고리즘 문제에서 가능하면 써먹어봐야지)

 

 

 

 

 

블로그의 정보

Roen의 iOS 개발로그

Steady On

활동하기