카테고리 없음

Javascript #4. 조건문

양아무개 2020. 1. 22. 19:47

*본 포스팅은 공부를 기록하는 목적의 포스팅입니다.

자바스크립트를 배우고자 하시는 분들은 밑의 사이트에 가시길 추천합니다 :)

https://learnjs.vlpt.us/

 

벨로퍼트와 함께하는 모던 자바스크립트 · 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에 포함된 값이 없을 경우이다.