새소식

반응형
Programming Language/JavaScript

[JavaScript] 자바스크립트 조건문,반복문, 논리 연산자

  • -
반응형

자바스크립트에서 조건문, 반복문, 제어문 및 논리 연산자는 프로그램의 흐름을 제어하고 조건에 따라 실행 여부를 결정하는 데 사용된다. 

 

1. 조건문(Conditional Statements)


조건문은 주어진 조건에 따라 코드 블록을 실행하거나 건너뛰게 하는 데 사용된다. 자바스크립트에서 가장 일반적인 조건문은 if, else if, else이다.

 

 

if 문

• if문의 기본적인 구조

if (조건) {
    // 조건이 참일 때 실행되는 코드
} else {
    // 조건이 거짓일 때 실행되는 코드 (선택사항)
}

 

• if문 예시

let age = 18;

if (age >= 18) {
    console.log("성인입니다.");
} else {
    console.log("미성년자입니다.");
}

 

 

switch 문

switch 문은 여러 가지 경우에 따라 다른 코드 블록을 실행하는 조건문이다. switch 문은 하나의 표현식을 평가하고 해당 표현식이 일치하는 경우에 실행할 코드 블록을 선택한다. 여러 경우에 대한 조건을 비교할 때 if... else if... else 구문 대신 switch 문을 사용하는 것이 더 가독성이 좋다.

 

switch문의 기본 구조는 다음과 같다.

switch (표현식) {
    case 값1:
        // 표현식이 값1과 일치할 때 실행할 코드
        break;
    case 값2:
        // 표현식이 값2와 일치할 때 실행할 코드
        break;
    // ...
    default:
        // 어떤 case에도 일치하지 않을 때 실행할 코드
}

• 표현식은 switch 문에서 평가할 값 또는 표현식이다.

• 각 case 레이블은 표현식의 가능한 값 중 하나와 비교된다.

• break 문은 실행할 코드 블록을 종료하고, switch 문에서 빠져나오는 역할을 한다. break 문을 사용하지 않으면 다음 case 레이블에 연속적으로 실행이 이어지니 조건에 충족할 시 빠져나오고 싶으면 각 case마다 break를 걸어두자.

• default 레이블은 어떤 case 레이블과도 일치하지 않을 때 실행할 코드를 정의한다. 이 부분은 선택 사항이며 필요에 따라 생략할 수 있다.

 

 

2. 반복문(Loop Statements)


반복문은 코드 블록을 여러 번 실행하도록 해준다. 자바스크립트에서 가장 일반적인 반복문은 for, while, do... while이 있다. 하나씩 차례대로 알아보자.

 

for 반복문

JavaScript에서 for문은 반복 작업을 수행하는 데 사용되는 중요한 제어 구조 중 하나이다. for문은 초기화, 조건 검사, 반복 후 작업을 수행하는 부분으로 구성된다. 아래는 for문의 기본적인 구조이다.

for (초기값; 조건; 증감식) {
    // 반복해서 실행할 코드
}

1. 초기화(Initialization)

for문의 첫 번째 부분에는 반복문이 시작될 때 초기화할 변수나 값이 들어간다. 일반적으로 반복 변수를 초기화하는 데 사용된다. 예를 들어, let i = 0은 반복 변수 i를 0으로 초기화한다.

 

2. 조건(Condition)

두 번째 부분은 반복문이 실행될 조건을 지정한다. 조건이 true인 동안 반복문이 계속 실행된다. 만약 조건이 false가 되면 반복문이 종료된다. 예를 들어, i < 5는 i가 5보다 작은 동안에만 반복문을 실행한다.

 

3. 반복 후 작업(Update) or 증감식

세 번째 부분은 반복문이 한 번 실행된 후에 어떻게 업데이트할지를 지정한다. 주로 반복 변수를 증가시키거나 감소시키는 데 사용된다. 예를 들어, i++는 i를 1씩 증가시킨다.

 

• for문의 실행 순서

1. 초기화 부분이 한 번 실행된다.

2. 조건을 검사하고 조건이 true인 경우 실행 코드 블록이 실행된다.

3. 실행 코드 블록이 실행된 후 반복 후 작업 부분이 실행된다.

4. 조건을 다시 검사하고 조건이 여전히 true이면 실행 코드 블록이 다시 실행된다.

5. 이 프로세스가 조건이 false가 될 때까지 반복된다.

 

for문 예제

for (let i = 0; i < 5; i++) {
    console.log("현재 i의 값은 " + i);
}

위의 예제 코드는 0부터 4까지의 숫자를 출력한다. 초기화에서 i가 0으로 초기화되고, 조건에서 i가 5보다 작은 동안 실행되며 반복 후 작업에서 i가 1씩 증가된다.

 

 

while 반복문

JavaScript에서 while문은 주어진 조건이 true인 동안 반복적으로 코드를 실행하는 부분이다. while문은 초기 조건을 검사한 후 조건이 true인 경우 코드 블록을 실행하고, 다시 조건을 검사하여, 조건이 false가 될 때까지 반복된다. 그렇다면 프로그래밍을 처음 접하신 분들이라면 while문과 for문은 똑같이 반복하는 구문인데 왜 굳이 나뉘어있는 걸까?라고 질문을 던질 수 있다. 보통 for문은 정확히 반복해야 하는 횟수를 알고 있을 때 사용하고 while문은 반대로 반복해야 하는 횟수를 정확히 모를 때 많이 사용한다.

 

while문의 기본 구조는 다음과 같다.

while (조건) {
    // 실행할 코드
}

실행할 코드 블록이 한 번 이상 실행되지 않을 수 있으므로, 조건이 false가 될 때까지 조심해서 사용해야 한다. 그렇지 않으면 무한 루프에 빠질 수 있다.

 

아래는 간단한 whlie문 예제이다. 이 예제에서는 변수 count를 사용하여 1부터 5까지의 숫자를 출력한다.

let count = 1;
while (count <= 5) {
    console.log("현재 count의 값은 " + count);
    count++;
}

위의 예제는 count가 5보다 작거나 같은 동안 실행 코드 블록을 반복 실행하고, count를 1씩 증가시킨다. 결과적으로 1부터 5까지의 숫자가 출력된다.

 

주의사항

• 반복문 안에서 조건을 만족하는 방향으로 조건 변수를 업데이트해야 한다. 그렇지 않으면 무한 루프에 빠질 수 있다.

• 조건을 만족하지 않을 경우에도 실행 코드 블록이 한 번 이상 실행되지 않을 수 있으므로 초기값과 조건을 신중하게 정해야 한다.

 

do while 반복문

do while 반복문은 조건이 참인 동안 코드 블록을 실행한다. 그리고 실행 이후에 조건을 평가한다. 이것은 다른 반복문의 for나 while과는 다른 특징을 가지고 있는데, 조건이 처음부터 거짓이더라도 코드 블록을 최소한 한 번은 실행하게 된다.

do {
    // 실행할 코드
} while (조건);

1. 먼저 코드 블록이 실행된다.

2. 그 후 while 키워드 뒤에 나오는 조건이 평가된다.

3. 조건이 참이면 코드 블록을 다시 실행한다.

4. 조건이 거짓이면 반복문을 종료한다.

 

아래는 do while 반복문의 예시 코드이다.

let i = 0;

do {
    console.log(i);
    i++;
} while (i < 5);

위 코드는 0부터 4까지의 숫자를 출력하고, i를 1씩 증가시키며 조건을 검사한다. 조건 i < 5가 거짓이 될 때까지 반복문을 실행하게 된다. 이것은 반복문의 조건 검사가 뒤에 오기 때문에 조건이 처음부터 거짓이더라도 최소한 한 번은 코드 블록이 실행되는 장점을 가지고 있다.

 

 

3. 제어문(Control Statements)


JavaScript에서 break와 continue는 반복문(for, while, do while) 내에서 제어 흐름을 조절하는 데 사용되는 특수한 키워드이다.

 

break 문

break 문은 반복문을 즉시 종료하고 반복문 외부의 코드로 제어를 전달한다. 이것은 반복문의 조건이 아무리 true이더라도, break 문이 실행되면 반복문은 종료된다.

for (let i = 0; i < 5; i++) {
    if (i === 3) {
        break; // i가 3일 때 반복문 종료
    }
    console.log(i);
}

위의 예시 코드에서 i가 3일 때 break 문이 실행되어 반복문이 종료되고, 결과적으로 0,1,2만 출력된다. 

 

for (let i = 0; i < 5; i++) { # 첫 번째 반복문
    for (let j = 0; j < 5; j++){ # 두 번째 반복문
        if (j == 3) {
            break; // j가 3일 때 반복문 종료
        }
        console.log(i + "," + j);
    }
    
    
}

만약 위의 코드처럼 2중으로 반복문이 실행될 경우에 break 문을 실행한다면 break 문에 현재 직속으로 속해있는 반복문만 종료되게 된다, 따라서 위의 코드에선 두 번째 반복문이 break에 의해 종료되게 된다.

 

 

continue 문

continue 문은 반복문을 중단하지 않고 다음 반복으로 넘어간다. 즉, continue 문이 실행되면 반복문의 다음 반복 단계로 진행된다.

for (let i = 0; i < 5; i++) {
    if (i === 2) {
        continue; // i가 2일 때 이번 반복을 건너뛰고 다음 반복으로 이동
    }
    console.log(i);
}

위의 코드에서 i가 2일 때 continue 문이 실행되어 이번 반복을 건너뛰고, 결과적으로 0,1,3,4만 출력한다.

 

break와 continue 문은 반복문 내에서 조건에 따라 특정 동작을 수행하거나 반복을 조절할 때 유용하다. 이를 활용하여 반복문의 동작을 미세하게 제어할 수 있다.

 

 

4. 논리 연산자(Logical Operators)


JavaScript에서 논리 연산자는 불리언(Boolean) 값 사이의 논리적인 조건을 결합하거나 평가하는 데 사용된다. JavaScript에서 주로 사용되는 논리 연산자는 &&(논리 AND), ||(논리 OR),!(논리 NOT)이다. 이들 연산자를 사용하여 조건을 조합하고 복잡한 조건을 만들 수 있다.

 

&&(AND)

논리 AND(&&)는 두 개의 조건 중 하나라도 false인 경우 결과는 false이다. 두 조건이 모두 true인 경우 결과는 true이다.

let isAdult = true;
let hasLicense = true;

if (isAdult && hasLicense) {
    console.log("운전 가능합니다.");
} else {
    console.log("운전할 수 없습니다.");
}

위의 코드에서 isAdult와 hasLicense 모두 true이므로 "운전 가능합니다"가 출력된다.

 

||(OR)

논리 OR(||)는 두 개의 조건 중 하나라도 true인 경우 결과는 true이다. 두 조건이 모두 false인 경우 결과는 false이다.

let hasMembership = false;
let hasCoupon = true;

if (hasMembership || hasCoupon) {
    console.log("할인 혜택을 받을 수 있습니다.");
} else {
    console.log("할인 혜택을 받을 수 없습니다.");
}

위의 코드에서 hasMemberShip이 false이지만 hasCoupon이 true이므로 "할인 혜택을 받을 수 있습니다"가 출력된다.

 

!(NOT)

논리 NOT(!)은 주어진 조건을 반전시킨다. true는 false로, false는 true로 변환한다.

let isRainy = true;

if (!isRainy) {
    console.log("날씨가 맑습니다.");
} else {
    console.log("비가 옵니다.");
}

위의 코드에서 isRainy는 초반에 true으로 선언되었지만 ! 연산자를 통해 false로 바뀌어 "비가 옵니다"가 출력된다.

 

논리 연산자를 사용하여 여러 조건을 결합하거나 조건문에서 조건을 평가할 때, 논리적으로 판단을 수행할 수 있다. 이를 통해 프로그램의 흐름을 더욱 정밀하게 제어할 수 있다.

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.