CODE CAVE

자바스크립트로 배우는 프로그래밍 #2.1 조건문(if,switch) 본문

Programming

자바스크립트로 배우는 프로그래밍 #2.1 조건문(if,switch)

코드케이브 2016. 8. 22. 11:02

저번 #1.3 포스팅에서 비교 연산자에 대해 이야기 나눠보았습니다!


오늘은 비교 연산자가 프로그래밍에서 왜 쓰이고 어떻게 쓰이는지 비교 연산자에게 의미를 부여 해줄 조건문에 대해 알아보겠습니다.


조건문은 if와 switch가 있습니다. 일단 둘의 차이를 간략하게 집고만 넘어가볼게요.


일단 if와 switch는 언어의 내장 함수 입니다. 

함수니까 if(), switch() 이런 식으로 적습니다. 함수는 () 안에 파라미터를 넘기도록 형태가 갖춰져있습니다.

아직 함수에 대해 다룬 적은 없으니 함수는 그냥 어떤 일련의 "기능"을 하는 것이라고 생각하시고 넘어가시면 됩니다.


조건문이 없는 프로그램은 없기 때문에 조건문은 모든 언어에 다 있습니다.

조금만 생각해보면 조건문이 없는 프로그램이 없다는 말이 이해가 되실겁니다.

프로그램은 순차적인 논리의 흐름입니다. 

근데 이 순차적인 논리가 어떤 조건에 따라 흐름이 바뀔수도 있습니다.


if는 만약 ~ 라면 이라는 뜻을 갖고 있죠,  

if문은 '()' 안에 조건식을 씁니다.

if(조건) {  명령코드  }  

만약 "무슨 조건이 true" 라면 {  } 안의 명령코드를 실행해라. 

"조건이 false" 라면 안의 명령코드를 실행하지 않고 해당 if 의 끝으로 넘어가라. 


switch는 말 그대로 스위치 입니다.

단순하게 자판기를 떠올리시면 이해가 쉽습니다.

자판기에 콜라, 사이다, 환타(제가 탄산을 사랑합니다) 이렇게 3개의 음료가 있다고 합시다.

콜라를 누르면 콜라가 나오겠죠? 콜라라는 이름 값을 가지고 어떤 흐름으로 갈지 결정 합니다.

코드로 다시 설명드릴게요.


앞서 말한대로 switch는 () 안에 값을 씁니다.

switch(값){ case "콜라" : 콜라나와랏; break; case "사이다" : 사이다나와랏; break; }

() 안의 값을 보고 어느 case로 갈지 정하는 것입니다.


차이가 보이시나요?

다시 정리하면 if 는 파라미터로 true 또는 false 라는 boolean 값을 받습니다. 그래서 조건문을 쓰죠.

반면 switch는 값이 옵니다. true, false, 숫자, 문자 아무거나 올 수 있습니다.


switch도 조건이긴 조건입니다. "==" 즉 같다라는 조건이죠. 

값을 보고 case 들중 같은게 있는지 찾으니까요! 


break의 역할은 switch에서 조건이 맞는 케이스만 실행하고 그 스위치문을 빠져나오기 위함입니다. 

break가 없으면 뒤에 case 들도 다 비교하게 됩니다.


정확한 통계는 없는 것 같지만 if가 훨씬 더 많이 쓰입니다

저 또한 조건문을 쓸 때면 if문을 더 애용합니다.


그래서 이번 포스팅에서 예제 코드는 if문 예제만 보려고 합니다~

스위치는 i앞서 알려드린 내용과 if만 알고 있으면 따라오는 부분이라고 생각되네요!


그럼 if 예제 코드를 보시죠. 

//Author : Moon Seong Soo
function calculateGrade(score){
var grade;
if(score >= 0 && score <= 50){
grade = 'C';
} else if(score <= 80) {
grade = 'B';
} else {
grade = 'A';
}
return grade;
}

calculateGrade라는 함수 인데요~ 아까 초반부에 말씀 드린대로 함수는 일련의 "기능"을 하는 것을 말합니다.

함수에 대한 깊숙한 내용은 나중에 함수 포스팅에서 다루고 지금은 위 함수의 { } 안의 명령코드에 집중합시다. 

실질적인 if문들이 있는 곳이니까요~


위 함수의 기능은 점수에 따라 학점을 결정해서 리턴하는 것 입니다.

점수가 0~50이면 C ==> 첫번째 조건 (if)

바로 위 if문이 false이면, 즉 51~80이면 B ==> 두번째 조건 (else if)

위의 if, else if가 모두 false이면, 즉 80보다 크면 A ==> 마지막 (else)

이해가 되시나요?

물론 else if와 else 를 안쓰고 if문으로만 해결할 수도 있을 겁니다.

하지만 if문으로만 한다면 조건을 계속 full로 적어야 하기도하고, 첫번째 if가 참이였는데 두번째 if도 읽게 됩니다.

쓸데 없는 조건 검사를 할 수도 있는거죠. 

근데 저렇게 else if 를 쓰면 첫번째 if가 참이면 뒤에 딸린 else if와 else를 읽지 않습니다.


그럼 이제 저 함수가 동작이 잘 되는지 확인해보기 위해 한번 아래 코드를 작성하고 브라우저에서 실행시켜보세요~

document.write(calculateGrade(70));

70 이면 무엇이 출력 될까요? if의 조건을 잘 보시면 아시겠지만 'B'가 출력됩니다. 


조건문에 대한 설명은 여기까지 입니다.

앞으로 계속 포스팅하는 예제에서 if가 자주 쓰일 것입니다. 


이번 포스팅 역시 제 부족한 설명 실력때문에 전달하고자 하는 바가 잘 전달이 되었는지 모르겠네요.


아무튼 프로그래밍은 눈으로만 보고 이해가 하는 것보다 사소한 코드라도 계속 적어보는 습관이 중요합니다.

실제로 제가 살면서 제 주변에 이론에 막강해도 막상 그럼 코딩해봐! 라고하면 멍~하게 못하는 사람이 꾀 많거든요~

프로그램이 처음이시라면 분명 대다수는 쉬운 코드에서도 오류가 납니다.

직접 꼭 손으로 쳐보시고 확인하는 습관이 중요합니다! 영타도 늘고 ㅎㅎ


그럼 열공 열프즐프 하세요~



공감이 되셨다면 아래 공감 버튼을 꾹!