
제어문(control flow statements)은 프로그램의 흐름을 제어하는 경우에 사용하는 실행문으로, 조건문, 반복문 등이 포함되어 있습니다.
어떠한 조건에서 참(true)인지 거짓(false)인지에 따라 결과가 다르게 나오는 명령문입니다.
표현식의 결과가 참(true)이면 주어진 실행문을 실행하며 결과가 거짓(false)인 경우 아무것도 실행하지 않습니다.
if(조건 표현식){ 조건이 true일 때 실행할 코드 }
if문과 같이 사용할 수 있으며 if문의 표현식 결과가 거짓(false)인 경우 주어진 실행문을 실행합니다.
if(조건 표현식){ 조건이 true일 때 실행할 코드 }else{ 조건이 false일 때 실행할 코드 }
하나의 조건문 안에서 if문과 else문은 단 한 번만 사용될 수 있으나 else if문은 여러 번 사용되어 다양한 조건을 설정할 수 있습니다.
if(조건1){ 조건1이 true일 때 실행할 코드 }else if(조건2){ 조건2가 true일 때 실행할 코드 else{ 조건이 false일 때 실행할 코드 }
여러 조건에 따라 그에 맞는 동작을 수행하게 만드는 조건문입니다. if else문과 유사하나 지정된 값을 조건에 비교한다는 차이점이 있습니다.
switch (표현식){
case 값1:
값1일 때 실행할 코드:
break;
case 값2:
값2일 때 실행할 코드:
break;
default(선택 사항):
일치하는 case가 없을 시 실행할 코드
이처럼 변수 혹은 표현식을 각 case에 지정된 값과 비교하여 실행문이 동작됩니다. break문을 통해 case 블록을 빠져나갈 수 있으며 없을 경우 다음 case로 이동합니다.
default는 case에 일치하는 값이 없는 경우 선택적으로 사용할 수 있습니다. 사용할 땐 주로 switch문 맨 아래 위치합니다.
반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 실행문입니다.
특정 조건을 만족할 때까지 계속해서 주어진 실행문을 반복 실행합니다.
while(조건){ 조건이 true일 경우 반복 수행할 코드 }
while문은 조건이 참인지를 판단하여 참이면 내부의 실행문을 실행합니다.
내부의 실행문을 전부 실행하고 나면, 다시 표현식으로 돌아와 또 한 번 표현식이 참인지를 판단하게 됩니다.
이렇게 표현식의 검사를 통해 반복해서 실행되는 반복문을 루프(loop)라고 합니다.
자체적으로 초기식, 표현식, 증감식을 모두 포함하고 있는 반복문입니다.
for(초기식; 표현식; 증감식;){ 조건이 true일 경우 반복 수행할 코드 }
초기식: 반복 조건 초기화 작업
증감식: 반복이 끝날 때마다 증감될 작업
초기식, 표현식, 증감식은 각각 생략될 수 있습니다. 또한 쉼표 연산자(,)를 통해 여러 개의 초기식, 증감식을 사용할 수 있으며 논리 연산자를 통해 여러 개의 표현식을 사용할 수 있습니다.
for in문은 일반적인 for문과는 달리 객체의 속성 값을 순회하며 열거하는 반복문입니다. 각 객체를 변수에 할당하여 반복문을 실행합니다.
for(변수 in 객체){ 반복문 }
for of문은 반복 가능한 객체를 순회하는 반복문입니다. 반복 가능한 객체에는 배열, 문자열, 맵(set), 셋(set) 등이 있습니다.
for(변수 of 객체){ 반복문 }
반복문 내에서 사용하며 현재 반복을 종료하고 다음 반복으로 넘어갑니다. 진행되고 있던 코드에서 continue를 만나는 순간 나머지 부분을 건너뜁니다.
for(초기식; 반복식; 증감식;){ 반복문1 continue; 반복문2 }
반복문 1 뒤 continue문이 실행되는 순간 다음 루프로 건너뛰며 반복문2는 실행되지 않습니다.
반복문, switch문 내에서 사용하며 현재 반복을 즉시 탈출합니다. 종료 후 다음 반복으로 넘어가지 않고 제어문 뒤에 오는 코드를 진행합니다.
for(초기식; 반복식; 증감식;){ 반복문1 break; 반복문2 }
break 문이 실행되는 순간 즉시 반복문 또는 switch 문을 탈출합니다. break 문 뒤에 오는 코드는 실행되지 않습니다.
코드 내 특정 부분을 식별하는 데 사용하며 주로 continue 문, break 문을 식별할 때 쓰이나 자주 사용되진 않습니다
label 이름: 식별하고자 하는 영역
continue 특정영역
break 특정영역