1. 연산자
연산자는 크게
1. 산술 연산자
2. 비교 연산자
3. 논리 연산자
4 대입 연산자
로 나뉜다.
1) 산술 연산자
산술 연산자에는

다음과 같은 종류의 연산자가 있다.
여기서 눈여겨 봐야 할 연산자는 나머지 연산자와 거듭제곱 연산자이다.
나머지 연산자란 나눗셈을 했을 때, 나머지 값을 반환하는 연산자이다.
거듭제곱 연산자란 앞의 값을 뒤의 값만큼 제곱시킨 값을 반환하는 연산자이다.
말로만 설명해서는 이해가 잘 안될테니 예시를 보겠다.

이렇게 각각 실행시켜본다면
1행의 경우 17 / 3의 나머지 값인 2가 반환이 될것이다.
(3 * 5 + 2 = 17)
2행의 경우 2의 세제곱인 2 * 2 * 2의 결과인 8이 반환 될것이다.
그럼 실행시킨 결과를 보도록 하겠다.

예상했던 것과 같은 값이 나오는 것을 확인할 수 있다.
+++++
산술 연산자에는 증감 연산자와 감소 연산자라는 것이 존재한다.
증감 연산자와 감소 연산자는 사용법이 같으니 증감 연산자만 설명하도록 하겠다.
증감(감소) 연산자는 다음과 같이 사용된다.

두 가지 형식을 가지고 있음을 볼 수 있다. 이는
1. 출력
2. 증감
둘 중 어느 것을 우선적으로 수행할 것인가에 따라 달라진다.
1행의 경우 선증가 연산자로 증감 후, 출력을 하게 된다.
2행의 경우 후증가 연산자로 출력 후, 증감을 하게 된다.
예시를 들어보겠다.

값이 5인 변수 value가 있다고 하자 .
2행의 경우 선증감 연산자이기에 증감 후, 출력을 하게 되어 6을 반환하게 될 것이다.
3행의 경우는 후증감 연산자이기에 출력 후, 증감을 하게 되어 6을 반환하게 될 것이다.
4행의 경우 앞선 3행에서 증감이 되었기에 7을 반환하게 될 것이다.
결과값을 살펴 보자.

예상했던 것과 같은 값이 반환되는 것을 확인할 수 있다.
2) 비교 연산자
비교 연산자에는 다음과 같은 종류의 연산자들이 있다.

여기서 주의 깊게 봐야 하는 연산자는 ===연산자이다.
===연산자는 값 뿐만 아니라 자료형도 같아야 참을 반환하게 되는데
이때 주의해야 할 점이 있다.
다음과 같은 코드가 있다고 가정해보자.

각각의 두 변수는 분명 같은 값과 같은 자료형을 가진 변수이다.
그렇기에 분명 참이라는 결과값을 반환해야 한다.
그러나 실행을 시켜보면

거짓이라는 결과값이 반환된다.
이게 어떻게 된 일일까?
닶은 주소값에 있다.
아무리 같은 값과 자료형을 가진 변수라도 서로 다른 주소값에 저장되어 있기에
컴파일러에서 같다고 판단하지 않은 것이다.
그렇다면 두 값이 같은 값인지 어떻게 확인할 수 있을까?
첫번째 방법은 접근 지정자를 통해 일일히 값을 비교하는 방법이다.

이 경우에는 배열에 들어있는 값이 많으면 일일이 비교하기 번거로워진다는 단점이 있다.
두번째 방법은 해당 변수들을 문자열로 변환한 후 비교하는 방법이다.

이 경우에는 배열안에 저장된 값들의 수에 상관없이 비교할 수 있다.
3) 논리연산자

논리 연산자에는 and연산자, or연산자, not연산자가 있다.
and 연산자: &&으로 표시하며, 두 값이 다 참일 경우에만 참을 반환한다.
or 연산자: ||로 표시하며, 두 값중 하나만 참이면 참을 반환한다.
not연산자: 값이 가진 결과를 뒤집어서 반환한다.
(값이 참이면 거짓을, 값이 거짓이면 참을 반환함)
4) 대입 연산자
흔히 일반적으로 생각하는 대입 연산자는 = 이다.
이 외에도 다음과 같은 대입 연산자가 존재한다.

단순히 길게 풀어 쓸 것을 줄여서 쓴 형태이기에 편한형태로 사용하면 될 것 같다.
+++++
조건 연산자(삼항 연산자)
조건 연산자는 유일하게 삼항 연산자이다.
조건 연산자는 다음과 같은 형태로 사용된다.

(조건식) ? 참일 경우 반환값 : 거짓일 경우 반환값;
그렇다면 위의 코드 결과 값은 무엇일까?
조건: num1변수가 num2변수보다 크다면
참일 경우 반환값: num1을 반환하여라
거짓일 경우 반환값: num2를 반환하여라

조건이 거짓이기에 num2가 반환되는 것을 확인할 수 있다.
2. 조건문
조건문은
1. if문
2. if ~ else문
3. if ~ else if ~ else문
4. switch문
으로 나뉜다.
1) if문

if문은 특정한 조건이 참이면 실행문을 실행하는 조건문이다.
이 경우에는 조건식이 참인 경우에만 실행된다.
2) if ~ else문

if ~ else문은 조건이 참이면 실행문 1을
거짓이면 실행문 2를 실행하는 조건문이다.
3) if ~ else if ~ else문

여러 조건 중 하나의 조건식이 참인 경우 관련된 문장이나 블록을 수행하고
더 이상의 비교가 이루어지지 않는 조건문이다.
조건문 1이 참이라면 실행문 1이 수행된 후 더 이상의 비교가 이루어지지 않고,
조건문 2가 참이라면 실행문 2가 실행된 후 더 이상의 비교가 이루어지지 않는다.
4) switch문

switch문도 if문과 비슷하게 조건에 따라 프로그램의 흐름을 분기시키기 위해 사용된다.
실행 경로가 여러 개인 경우에는 switch문을 사용하는 것이 좋다.
(if문은 참, 거짓에 따라 실행할 문장이 결정되기에 실행 경로가 두 개이다.)
switch문은 제어식의 값에 따라 다음에 실행할 문장을 결정하게 된다.
default는 위의 조건 중 아무것도 해당되지 않을 경우 실행하게 된다.
3. 반복문
반복문에는
1. for문
2. 중첩 for문
3. while문
4. do ~ while문
이 있다.
1) for문
for문은 정해진 횟수만큼 반복하여 실행하는 구문이다.
for문은 초기식, 조건식, 증감식 총 세 부분으로 나뉘며, 각 부분은 ;(세미콜론)으로 분리된다.

다음과 같은 형식으로 사용되며

변수 i값이 1씩 증감되며 출력된 것을 볼 수 있다.
for문의 조건식은 다음과 같이도 사용 가능하다.

for문의 조건식에 배열의 길이를 집어넣어 배열의 길이만큼 for문을 실행시킬수도 있다.
2) 중첩 for문
중첩 for문이란 하나의 for문 안에 또 다른 for문을 삽입하는 형태를 말한다.
이 때 주의해야 할 점은 루프 제어 변수로 서로 다른 변수를 사용해야 한다는 것이다.

주의해야 할 또 다른 점은 겉의 for문이 실행되면 내부의 for문이 실행되는데,
이 때, 내부의 for문을 다 실행하면 다시 겉의 for문의 실행된다는 점이다.
순서를 정리하자면
1. 겉의 for문 변수인 j가 0을 선언
2. 내부 for문의 변수인 k가 0을 선언
3. 내부 for문의 변수인 k가 2가 될 때까지 증감
3. 겉의 for문 변수인 j가 1로 증감
.
.
.
식으로 흘러가는 것이다.
3) while문
while문은 주어진 조건이 만족되는 동안, 문장을 반복 실행하는 구조이다.

while문을 쓸 때에는 초기식과 증감식을 모두 넣었는지 살펴봐야 한다.
(일단 나는 겁나 자주 까먹는다)
4) do ~ while문
do ~ while문은 while문과 비슷하나 반복 조건을 반복문의 처음이 아닌 끝에서 검사한다.
즉, 해당 조건문이 틀렸어도 무조건 1번은 실행시켜 준다는 것이다.
예시를 보겠다.

일부러 조건식을 틀리게 했다.
다른 반복문을 사용했을 경우 실행시켜보면 에러가 났을 것이다.
그러나 앞서 말했듯 do ~ while문은 일단 한 번 실행 시킨 후,
조건식을 검사하기에 실행문이 한 번은 실행 될 것이다.

딱 한 번 실행되는 모습을 확인할 수 있다.
+++++
for문과 while문을 사용하면 자칫 무한 루프에 빠지게 될 위험성이 있다.
그럴 때 사용하는 것이
1. break문: 반복문안에서 빠져나온다.
2. continue문: 실행하고 있는 반복 과정을 중단하고 다음 반복을 실행한다.
이다.
1) break문

for문이기에 원래라면 배열의 길이(7번)만큼 반복한 후 실행이 끝나야 한다.
그러나 중간에 break문을 삽입하게 되면 해당 배열을 끝까지 돌지 않고 중간에 반복문을 탈출하게 된다.
결과값을 살펴보면 더 명확하게 알 수 있다.

원래라면 배열의 길이인 7만큼을 반복한 후 나와야 한다.
그러나 중간에 break문을 만나면서 반복문을 끝까지 돌지 않고 나온 것을 확인할 수 있다.
2) continue문
continue문은 현재 실행하고 있는 반복 과정의 나머지를 생략하고 다음 반복을 시작하게 만든다.
말만 들으면 무슨 소리인지 이해가 안 갈 것이다.
그러니 예시를 살펴보도록 하겠다.

다음과 같은 for문이 있다.
변수 cnt의 값이 3이 된다면 어떻게 변화하는지 살펴보면
continue문이 무엇인지 단박에 이해가 될 것이다.
결과를 보도록 하겠다.

변수 cnt의 값이 3이 되었을 때 해당 반복구간을 무시한 채,
다음 반복구간으로 넘어간 모습을 확인할 수 있다.
즉, continue문은 해당 구간을 무시하고 다음 반복구간으로 넘어가는 것이다.
'JavaScript' 카테고리의 다른 글
| 05. 상속 (0) | 2022.02.17 |
|---|---|
| 04. 객체(오브젝트)와 클래스 (0) | 2022.02.16 |
| 로또 만들기 (0) | 2022.02.15 |
| 03. 함수와 배열 (0) | 2022.02.11 |
| 01. 기초 자료형 및 변수 선언, 그리고 출력 (0) | 2022.02.07 |