오늘 공부하고 알아볼 내용은 제어문이다.

제어문에는 여러 문들이 있다 .

블록문 , 조건문 ,함수 선언문 ,switch문 ,for문등 while문등등 여러가지가 있다. 오늘은 그 중에서 블록문 , 조건문 , switch문 for문을 공부 할 것이다

블록문

블록문은 0개 이상의 문을 중괄호로 묶은 것이다.

코드 블록 또는 블록이라고도 부른다.

자바스크립트는 블록문을 하나의 실행 단위로 취급한다.

그렇기 때문에 일반적으로 제어문이나 함수를 정의 할 때 쓰는것이 일방적이다.
(단독으로 사용도 가능하긴함)

<script>
//블록문예제
{
var foo = 15;
}
 //이러한 문들이 블록 문들이고 앞으로의 여러 제어문을 공부할 때 자주 보게 될 것이다.
</script>

조건문

조건문은 주어진 조건식을 평가 결과에 따라 코드블록을 실행한다.

조건식은 불리언 값으로 평가될 수 있다.

코드로 확인해보자

<script>
if(조건식){
 // 조건식이 참이면 이 코드 블록이 실행됨
}else {
 // 조건식이 거짓이면 이 코드 블록이 실행됨
}
</script>

if 문의 조건식은 불리언 값으로 평가되어야 한다.

만약 if 문의 조건식이 불리언 값이 아닌 값으로 평가되면 암묵적 타입 변환이 일어난다.

<script>
if(조건식1){
 // 조건식1이 참이면 이 코드 블록이 실행됨
}else if (조건식2)  {
 // 조건식이 거짓이면 이 코드 블록이 실행됨
}else{
//조건식 1과 2가 거짓이라면 이 코드 블록이 실행된다.
}
</script>

또한 if문에서 else와 else if 는 옵션으로 사용된다.

사용할수도 있고 사용하지 않아도 된다.

if문과 else문은 2번이상 사용 할 수 없다 . 하지만 else if 문은 여러 번 사용 할 수 있다.

<script>
//if문

var num = 8;
var kind ;

if (num > 0) {
 kind = "양수"
}

console.log(kind) //양수


// else문
var num = 8;
var kind ;

if (num > 0) {
  kind = "양수"
} else{
  kind="음수"
}
console.log(kind) //양수


//if else if 문 
var num = 8;
var kind ;

if (num > 0) {
  kind = "양수"
} else if(num < 0){
  kind="음수"
} else{
  kind = "영"
}
</script>

switch문

switch 문은 주어진 표현식을 평가한다.

평과한 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다.

<script>
switch(표현식) {

  case 표현식 1:
    switch 문의 표현식과 표현식1이 일치하면 실행될 문
    break;
    
  case 표현식 2:
    switch 문의 표현식과 표현식2이 일치하면 실행될 문
    break;
    
    default:
    switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문 
    </script>
}

여기서 중요한 부분은 break이다.

break 키워드로 구성된 break 문은 코드 블록에서 탈출하는 역할을 한다.

break 문이 없다면 case 문의 표현식과 일치하지 않아도 실행 흐름이 다음 case문으로 이동한다.

탈출하지않고 switch문이 끝날 때까지 이후의 모든 case문과 default 문을실행 하면 폴스루라는 현상이 일어난다.

break 문을 생략한 폴스루가 유용한 경우도 있다.

여러 개의 case 문을 하나의 조건으로 사용하는 경우이다.

for문

for문은 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행한다.
가장 일반적으로 사용되는 for문의 형태는 다음과 같다.

for(변수 선언문 또는 할당문 : 조건식 ; 증감식){
조건식이 참인 경우 반복 실행할 문
}

<script>
for(var i = 0; i < 2 ; i++){
console.log(i)  // 0 1 
}
</script>

위 코드의 로직 순서는 이러하다

1번 var i = 0 (i = 0) // for문을 실행하면 변수 선언문이 제일 먼저 실행됨

2번 i < 2 = true // 변수 선언문이 종료되면 조건식 실행

3번 console.log(i) // i = 0
(이 단계에선 증감식으로 가는게 아니라 조건식이 트루기 때문에 코드블록이 실행된다 .
증감문에서 실행 흐름이 이동하는 것이 아니라 코드 블록으로 실행 흐름이 이동하니 조심하자.

4번 i++ (i = 1) //코드 블록으 실행이 종료되면 증감식 i++이 실행되어 값이 1이다.

5번 i < 2 =(true) //증감식이 종료되면 다시 조건식으로 돌아와 조건을 비교한다.

6번 console.log(i) // i = 1 //조건식이 트루기때문에 다시 코드블록으로 들어온다,

7번 i++ (i = 2) //증감식을 한다.

8번 i < 2 =false //종료 조건 불충분

그렇기 떄문에 i가 0으로 초기화된 상태에서 시작하여 i가 2보다 작을 때까지 코드블록을 두번 반복한다. 그렇기 때문에 콘솔 로그에 0 , 1 이 찍히는것이다.

이중중첩문에 대해서도 한 번 우리가 공부해본다면

<script>
for (let i = 0; i < 10; i++) {
  for (let j = 1; j < 10; j++) {
    console.log(`${i}${j}`);
  }
}
</script>

(1) let i = 0;
(2) i < 10;(트루기때문에 밑에 코드블록으로 들어감)
(3) let j = 1;
(4) j < 10 ;(트루기때문에 밑에 코드블록으로 들어감)
(5) console.log에 0 1 이찍히고 증감으로 돌아감
(6) j++ 해서 2가됨
(7) 조건식비교 트루기때문에 다시 콘솔로그
(8)이렇게 j가 9까지 순회해서 09가되면 j 조건식에서 펄스가 뜨기때문에 다시 위로감 그래서 렛 i가 다시 1이되고 j가 다시 9번 돌고

이렇게 과정을 이해하면 좋다.

날먹으로 쉽게 알려주겠다 위에꺼 쫄지마셈
//걍 for (let i = 0; i < 10; i++) 가 0일때 밑에
for (let j = 1; j < 10; j++) 얘네 9번돌고
(let i = 0; i < 10; i++) 1됨
for (let j = 1; j < 10; j++) 다시 9번돔
(let i = 0; i < 10; i++) 2됨
for (let j = 1; j < 10; j++) 다시 9번돔
i가 9 될때까지 돌면 뭐 99나옴

이렇듯 반복문은사람들이 하나하나 해야하는 작업을 컴퓨터에게 효율적으로 시킨다.

for문은 우리가 조금 더 친해지고 늘 공부하려 해보자

0개의 댓글