공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

제어문

  • if문, else-if문
  • switch문
  • for, 중첩 for문
  • for ... of문
  • while, do-while문
  • break문
  • continue문

 

 

truthy와 falsy

논리형의 자료 값은  true ,  false 뿐이지만 일반 값 중에서도  true 로 인정할 수 있는 값은  truthy 값,  false 로 인정할 수 있는 값을  falsy 값이라고 한다. 이 값들은 모두 조건식에서  true ,  false 와 똑같이 사용 가능하다. 아래 나온  falsy 한 값을 제외한 나머지 값들은  truthy 값이 된다.

 

   falsy한 값 

  • 숫자  0 
  •  ""  : 빈 문자열
  •  NaN  : 숫자가 아님(Not a Number)
    변수를 선언만 한 상태(값을 할당하지 않은 상태)에서 연산을 하면 나온다.
  •  undefined 
  •  null 

 

var input = prompt("이름을 입력하세요.");
if(input){
    alert("이름을 입력했습니다 : " + input);
}else{
    alert("이름을 입력하지 않았습니다. ");
}

 truthy 값과  falsy 값을 이용해서 사용자가 프롬프트 창에 입력을 했는지 확인하는 예제이다.

무엇이든 값을 입력하면 조건식이  true 가 되고, 아무것도 입력하지 않으면  input 변수가  null 이 되므로 조건이  false 가 된다.

 

값을 입력할 경우
값을 입력하지 않았을 경우

 

 

 

if문

if(조건식){
    [조건식이 true일 때 실행할 명령어];
}

조건식이  true  { } 안의 명령을 실행하고  false  if 문을 실행하지 않고 빠져나온다.

 

 

  ■ if-else문

if(조건식){
	[조건식이 true일 때 실행할 명령어];
}else{
	[조건식이 false일 때 실행할 명령어];
}

 if 문과 비슷하지만  if-else 문은 조건식이  false 일 때도 명령어를 지정해줄 수 있다는 점이 다르다.

실행시간을 고려해서  true 가 될 경우가 많은 조건을  if 문에 넣고 다른 조건을  else 문에서 처리하는 것이 좋다.

 

 

  ■ 조건 연산자(삼항 연산자)

(조건) ? [true일 때 실행할 명령] : [false일 때 실행할 명령]

(score >= 60) ? alert("통과") : alert("실패");

조건이 하나이고 실행할 명령도 하나뿐이라면 조건 연산자를 사용하는 것이 간단하다.

 

 

 

switch문

switch([비교할 값]){
    case (값1) :
	[값이 1일때 실행할 명령어];
        break;
    case (값2) :
        [값이 2일때 실행할 명령어];
        break;
    ...
    default : 
        [값이 위의 case에 모두 해당되지 않을 때 실행할 명령어];
}

조건이 여러 개인 경우  if-else 문보다  switch 문을 사용하는 게 더 나은 경우도 있다.

 break 문을 사용하지 않으면  break 문을 만나기 전까지 다음 문장이 계속해서 실행되므로 주의한다. 

 

<script>
    var session = prompt("관심 세션을 선택해 주세요. 1-마케팅, 2-개발, 3-디자인", "1");
		
    switch(session){
        case "1" : document.write("<p>마케팅 세션은 <strong>201호</strong>에서 진행됩니다. </p>");
    	    break;
        case "2" : document.write("<p>개발 세션은 <strong>203호</strong>에서 진행됩니다. </p>");
    	    break;
        case "3" : document.write("<p>디자인 세션은 <strong>205호</strong>에서 진행됩니다. </p>");
    	    break;
        default : alert("잘못 입력했습니다.");
    }
</script>

 switch 문을 사용하는 예시이다.

 prompt( ) 함수로 사용자에게 값을 입력받는데 이때 입력받은 값은 숫자가 아니라 문자이기 때문에  case 문에 숫자를  " 로 묶어 문자열로 처리해야 한다.

 

 

 

for문

for([카운터 변수] ; [조건식] ; [증감식]){
    [반복 실행할 명령어];
}

(초기값이 있으면서) 횟수가 정해진 반복 작업을 해야 할 때 주로  for 문을 사용한다.

 

  • 카운터 변수 :  for 문 안에서만 사용할 카운터 변수 선언
     for 문을 실행할 때 반복 횟수의 기준이 되는 변수이다. 반복문을 시작하기 전에 반드시 초기화해야 한다.
  • 조건식 :  for 문을 실행 여부를 판단하는 조건식
    조건이  true  for 문 안의 명령어를 실행하고,  false  for 문을 벗어난다.
  • 증감식 : 카운터 변수를 조절하는 식

 

 

  ■ 중첩 for문

<body>
	<h1>구구단</h1>
	<script>
		for(var i = 2 ; i <= 9 ; i++){
			document.write("<div>");
			document.write("<h3>" + i + "단</h3>");
			for(var j = 1 ; j <= 9 ; j++){
				document.write(i + " X " + j + " = " + i*j + "<br>");
			}
			document.write("</div>");
		}
	</script>
</body>

fora for 문을 중첩해서 사용하면 좀 더 복잡한 반복 작업을 만들 수 있다.

중첩  for 문을 이용한 구구단 출력 예시이다.

 

 

  ■ [ES6] for ... of 문

let seasons = ["봄", "여름", "가을", "겨울"];
for(let value of seasons){
    console.log(value);
}

 for 문을 사용한 반복문은 인덱스 값을 기준으로 반복하지만  for ... of 문은 인덱스를 사용하지 않고 값을 기준으로 반복한다.

 

 

 

 

while문

while(조건식){
     [조건식이 true일 동안 실행할 문장];
}

 for 문과 달리 횟수가 정해지지 않은 반복 작업을 할 때 주로  while 문을 사용한다. 조건식이 참인 동안 명령을 반복하지만 조건식이  false 인 경우엔 한 번도 실행되지 않을 수 있다. 무한루프를 방지하기 위해 카운터 변수를 별도로 설정해서 반복 횟수를 제어하기도 한다.

 

 

  ■ do-while문

do {
    [반복 실행할 명령어];
} while(조건식);

 do-while 문도  while 문과 마찬가지로 조건식이 참인 경우 명령을 반복한다.

조건식이 뒤에 온다는 점이 다르고 일단 문장을 실행한 후 조건을 확인하기 때문에 적어도 한 번 이상은 반복문이 실행된다.

 

 

 

break, continue

  •  break문  :  반복문을 빠져나올 때 사용
  •  continue문  : 현재 순서의 반복 문장을 건너뛰고 다음 순서의 반복을 진행한다. ( continue 문 이후의 명령어를 건너뛴다.)

 

 

 

+ Recent posts