-
Javascript #4. 조건문카테고리 없음 2020. 1. 22. 19:47
*본 포스팅은 공부를 기록하는 목적의 포스팅입니다.
자바스크립트를 배우고자 하시는 분들은 밑의 사이트에 가시길 추천합니다 :)
벨로퍼트와 함께하는 모던 자바스크립트 · GitBook
벨로퍼트와 함께하는 모던 자바스크립트 본 강의 자료는 패스트캠퍼스 온라인 강의에서 제공하는 JavaScript 강의에서 사용되는 강의 문서입니다. 강의 소개 이 강의에서 뜻하는 "모던 자바스크립트"는, 2019년에 사용하기에 걸맞는 그리고 또 뒤쳐지지 않는, 그런 자바스크립트를 칭합니다. 이 강의에서는 자바스크립트 기초부터 시작해서 실무에서 필요한 핵심 지식들까지 다뤄보게 됩니다. 강의 대상 이 강의는 프로그래밍을 한번도 해본적 없는 사람이 들어도 도움이
learnjs.vlpt.us
이번엔 조건문이다.
갈길이 멀다이야이야
보통 나는 문법 공부를 할 때 조건문 부터 슬슬 처지기 시작하므로 마음 다잡고 해야한다.
갑시다~
조건문은 특정 조건이 만족 되었을 때 특정 코드를 실행할 수 있다.
처음 Java로 조건문을 배웠을 때 도대체 이건 언제 쓰이는 걸까 하는 생각이 가득이었다.
마치 고등학교 때 집합을 왜 하는거지 하는 기분처럼..
-if문
조건문의 가장 기본적인 것은 if문이다.
if문은 만약 ~~하다면 ~~를 해라 이다.
이런걸 어떻게 쓸까?
만약 학생들의 성적을 점수별로 출력을 해야한다고 하면,
이런 식으로 사용할 수 있다.
만약 학생의 점수가 90점 이상이면 A를 줘라.
if(학생의 점수 >= 90){
Give 'A'
}
위는 실제 코드가 아니다.
여튼 이런 느낌으로 쓸 수 있다는 것을 알면 조건문이 좀 덜 지루하게 느끼지 않을까 해서 적어보았다.
생각보다 다 쓰임이 있는 것이다.
근데 여전히 집합은 모르겠다...
예시코드를 보자.
const a = 1; if(a + 1 === 2){ console.log('a+1이 2이다'); }
결과는 a+1이 2이다 가 출력된다.
if(a + 1 ===2 )가 true이기 때문이다.
하지만 만약 여기서 a를 0으로 바꾼다면 어떻게 될까?
const a = 0; if(a + 1 === 2){ console.log('a+1이 2이다'); }
결과는 아무것도 출력되지 않는다.
if문을 사용할 경우, 특정조건이 만족되어야만 특정 코드가 실행된다.
if (조건) { 코드; }
조건이 만족됐을 때 실행시킬 코드가 { }로 감싸져있는데 이는 코드 블록이라고 한다.
만약 조건이 true가 되면 지정된 코드가 실행되고 false가 되면 실행되지 않는다.
이전에 let과 const를 배울 때 다른 블록 범위에서는 똑같은 이름으로 선언할 수 있다고 했다.
밑의 코드를 보자.
const a = 1; if (true) { const a = 2; console.log('if 문 안의 a 값은 ' + a); } console.log('if문 밖의 a 값은' + a);
결과는 다음과 같다
if문 안에 있는 코드 블록 console.log와 if문 밖의 console.log의 a는 각각 선언된 값이 다르다.
*if-else 문
if-else문은 만약 ~~하면 ~~하고, 그렇지 않으면 ~~해라 이다.
만약 학생의 점수가 50점 이상이면 pass하고, 그렇지 않으면 non-pass이다 인 것이다.
예시 코드를 보자.
const score = 90; if (score >= 50) { console.log('PASS'); }else{ console.log('NON PASS'); }
위의 코드의 결과는 pass이다.
그렇다면 여러 조건이 필요한 경우엔 어떻게 할까?
패논패 말고 A, B, C 등등으로 나누고 싶을 땐?
*if-else if문
if-else if문이 그렇다.
학생들의 점수를 좀 더 세분화 해서 평가할 필요가 있는 것이다.
if-else if문을 사용하면 학생들의 점수가 90점 이상일 때, 80점 이상일때, 60점 이상일 때 등등 좀 더 다양한 조건으로 평가할 수 있게 된다.
예시 코드를 보자.
const score = 80; //학생의 점수가 50점일 때 if(score >= 90 ) { console.log('A'); }else if(score >= 80) { console.log('B'); }else { console.log('재시험'); }
굉장히 엄격한 평가 기준이 되었다...학생의 학점은 B이다!
*switch/case문
swich/case 문은 특정 값이 무엇이냐에 따라 다른 작업을 하고 싶을 때 사용한다.
음.. 무슨 말인지 감이 잘 안온다.
그럴 땐 예시 코드를 보자!
사실 나는 지금 백수지만 대학생인걸로const yangchoi = 'university student'; switch (yangchoi) { case 'high school' : console.log('고등학생'); break; case 'salary man' : console.log('회사원'); break; case 'university student' : console.log('대학생'); break; defualt: console.log('백수'); }
결과는 대학생이다!
yangchoi의 값에 따라서 다른 결과가 출력될 수 있다.
switch/case문은 이와 같이 특정 값이 무엇이냐에 따라 다른 작업을 수행한다.
단, case에서 실행할 코드를 작성하고 마지막으로 break;를 해주어야 한다.
그렇지 않으면 다음 case 코드까지 실행해버린다.
맨 아래의 default: 는 yangchoi 값이 case에 포함된 값이 없을 경우이다.