※ 조건문
if문
if 뒤에 오는 소괄호 안의 조건식이 참으로 평가되면 중괄호 안의 코드를 실행하는 조건문
조건식은 무조건 참/거짓으로 평가된다.
if(조건식){
// 조건식이 참이면 블록문 실행
}
else문
if문의 조건식이 거짓일 때 실행되는 블록문 정의
if문 없이 단독으로 사용할 수 없으며 하나의 if문에는 하나의 else문만 사용할 수 있다.
if(조건식){
// 조건식이 참이면 블록문 실행
}else{
// 조건식이 거짓이면 블록문 실행
}
else if문
if문에 조건을 추가하고 싶을 때 사용.
else if문의 개수에는 제한이 없다.
항상 if문 다음에 사용하고 else문보다는 먼저 사용해야 함.
if(조건식1){
// 조건식1이 참이면 블록문 실행
}else if(조건식2){
// 조건식2가 참이면 블록문 실행
}else{
// 조건식이 모두 거짓이면 블록문 실행
}
중첩하기
분기처리 : 어떤 조건식을 만족할 때 어떤 블록문을 실행할지 결정하는 것.
if문, else if문, else문 안에 if문, else if문, else문을 중첩해서 넣을 수 있고, 개수에는 제한이 없다.
switch문
: switch문은 switch 뒤에 오는 소괄호 안의 값과 일치하는 case문이 있을 때 해당 코드를 실행하는 조건문
: 하나 이상의 case문과 default문, break문을 사용함.
switch(key){
case value1:
// key가 value1일 때 실행할 블록문
break;
case value2:
// key가 value2일 때 실행할 블록문
break;
default:
// 아무것도 일치하지 않을 때 실행할 블록문
break;
}
일치 여부는 일치연산자 (===)로 값과 자료형을 모두 비교 후, 일치하는 것의 case문을 실행한다.
실행은 break 만나기 전까지 실행됨! (break문은 코드 실행을 멈춤)
default문은 if문의 else문과 같다. 일치하는 case문이 없으면 기본으로 실행됨.
(default문은 생략할 수 있지만, case문과 default문 중 하나 이상이 있어야 한다. switch문에서)
실제로 break를 몇개 제거하니, 처음 break가 나올때 까지 출력함을 확인할 수 있다.
if문과 조건식
조건에 식을 사용하는데. 논리연산자나 비교 연산자를 식에 이용할 수 있다.
let score = 90;
if(score >= 90 && score <= 100){
console.log("A++ 학점");
}
&&(AND연산자)은 앞에서부터 피연산자를 평가해 모두 참이면 마지막 피연산자가 반환된다.
if문 VS switch문
결정적 차이는 조건의 형태!
if문 | switch문 |
식(statement) 사용 | 값(value) 사용 |
switch문은 조건으로 값을 받기 때문에, 값이 범위일때는 모든 값을 일일이 case문으로 정의해야한다.
그래서 범위나 값이냐의 포커스를 두고 잘 선택해서 조건문을 사용하면 된다.
※ 반복문 (loop) : 지정한 조건이 참으로 평가되는 동안 지정한 블록문을 반복해서 실행
while, do...while, for문이 있다.
while문
: 특정 조건을 만족하는 동안 블록문을 실행
while(조건식){
// 조건식이 참이면 실행
}
let num = 1;
while(num <= 9999){
console.log(num);
num++;
}
위의 코드처럼 while문의 조건이 참일동안 실행되고 그 안의 블록문이 실행된다. num이 9999보다 클 때 while문의 반복이 끝난다.
무한 반복문
무한 반복문 : 반복문의 조건이 계속 참으로 평가되어 반복문이 끝나지 않고 무한히 실행되는 것.
무한히 반복되면 치명적인 성능저하를 일으킬 수 있으므로, 항상 무조건 조건문이 거짓이 되는 순간이 있는지 신경써야!
do while문
특정 조건이 참으로 평가되는 동안 do 다음에 온 블록문을 반복 실행한다.
블록문을 한 번 수행한 후에 조건식을 평가한다는 특징이 있다.
즉, 조건이 거짓이어도 무조건 한 번 실행 됨!
do{
console.log("무조건");
console.log("한 번은 실행");
}while(false);
for문
횟수를 지정해 지정한 횟수가 끝날 떄까지 블록문을 반복 실행하는 반복문
조건식과 증감식이라는 독특한 실행구조로 되어 있다.
for(초깃값; 조건식; 증감식) {
// 블록문
}
초깃값 → 조건식 → 블록문(조건식이 참일 경우) → 증감식 → 조건식 순서로 실행
초깃값은 최초 1회만 실행됨.
중첩 for문
▶ 기본이 되는 반복문은 가장 외부에서 실행되는 for문이다.
▶ 내부에 중첩된 for문은 외부 for문의 실행이 종료되면 같이 종료된다.
▶ 내부 반복문의 초깃값은 외부 블록문이 실행될 때마다 새로 설정된다.
for문과 배열
배열의 length 속성을 사용하면 배열의 데이터 개수(배열의 길이)를 확인할 수 있다.
let arr = ["banana", "apple", "orange"];
for(let i = 0; i < arr.length; i++){
console.log(arr[i]);
}
for ... in
: 객체 리터럴이나 배열에 반복 접근할 수 있는 반복문
for (가변수 in 배열/객체 리터럴) {
//블록문
}
탐색결과로 가변수에 객체 리터럴의 키가 할당되어 객체 리터럴의 키와 값을 출력할 수 있다.
가변수는 임시변수!
let obj = {name:"철수", age:"20"};
for(let key in obj){
console.log(key + ": " + obj[key]);
}
배열을 반복할 경우
let arr = ["orange", "banana", "apple"];
for(let index in arr){
console.log(index + ": " + arr[index]);
}
// 여기서 왜 let index in arr의 값이 왜 인덱스로 나오는지??
break문
종료조건을 만족하지 않아도 인위적으로 반복문을 종료하는 방법.
주로 if문을 사용해서 처리한다.
let obj = {name:"철수", age:20};
for(let key in obj){
if(key === "age") break;
console.log(obj[key]);
}
여기서 중괄호 안에 적용되는 것은 객체리터럴로 값은 key로 분류되어서 let key in obj에서 key는 변수명과 상관없이 key값으로 나온다.
continue문
반복문을 건너뛰고 실행하라는 명령어이다.
반복문의 블록문에서 continue문을 만나면, 해당 반복 실행만 건너뛰게 된다.
for(let i = 1; i <= 10; i++){
if(i % 2 === 1) continue;
console.log(i);
}
홀수일 때 continue로 홀수를 제외한 짝수만 출력하게 된다.
'Frontend > JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트 객체 다루기 (0) | 2023.07.26 |
---|---|
[JavaScript] 자바스크립트 함수 다루기 (1) | 2023.07.25 |
[JavaScript] 변수와 상수 / 자료형 / 연산자 (0) | 2023.07.20 |
[JavaScript] 작성방법, 사전지식 (0) | 2023.07.16 |
JavaScript(4) 실습 (0) | 2021.08.29 |