A Developing Developer
04. 반복문 본문
4-1. 배열
- 배열 : 여러 개의 변수를 한 번에 선언해 다룰 수 있는 자료형
[요소, 요소, 요소, ..., 요소]
const fruits = ['사과', '딸기', '배', '감']
// fruits[0] 은 fruits 배열의 0번째 인덱스 값을 불러온다. >>> '사과'
// fruits 뒤의 [](대괄호) 안에 숫자가 인덱스 값이고, 인덱스 값은 0부터 시작한다.
// fruits 배열의 0번째 인덱스의 값(요소) 가 '사과' 인 것이다.
- 요소 : 배열 내부에 있는 값
- 배열 뒷부분에 요소 추가하기
배열.push(요소)
fruits.push('수박')
fruits = ['사과', '딸기', '배', '감', '수박']
//마지막 인덱스 바로 뒤에 요소가 추가된다.
- 배열 요소 제거하기(인덱스)
배열.splice(인덱스, 제거할 요소의 개수)
fruits.splice(2, 1)
//fruits = ['사과', '딸기', '감', '수박']
//기존에 있떤 2번 인덱스의 '배' 가 제거되었다.
- 배열 요소 제거하기(값)
const 인덱스 = 배열.indexOf(요소)
배열.splice(인덱스, 1)
const index = fruits.indexOf('수박')
//fruits = ['사과', '딸기', '감', '수박'] 이 경우 index 값은 3 이다.
fruits.splice(index, 1)
//fruits = ['사과', '딸기', '감'] 이 된다. ('수박' 제거)
- 배열의 특정 위치에 요소 추가하기
배열.splice(인덱스, 0, 요소)
const fruits = ['사과', '딸기', '배', '감']
fruits.splice(1, 0, '오렌지')
//fruits = ['사과', '오렌지', '딸기', '배', '감']
//인덱스 1 자리에 제거되는 요소 없이 '오렌지'가 들어간다. 기존의 인덱스 1 자리의 '딸기' 는 인덱스 2 로 넘어간다.
- 비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않는 처리
const fruits = "사과, 딸기, 배, 감"
fruits.split(',')
console.log(fruits)
- 파괴적 처리 : 처리 후에 원본 내용이 변경되는 처리
const fruits = ['사과', '딸기', '배', '감']
fruits.push('수박')
console.log(fruits
4-2. 반복문
- for in 반복문 : 배열의 인덱스를 기반으로 반복할 때 사용
for (const i in todos) {
console.log(`${Number(1) + Number(i)}번째 할 일: ${todos[i]}`)
}
- for of 반복문 : 배열의 값을 기반으로 반복할 때 사용
for (const todo of todos) {
console.log(`오늘의 할 일 : ${todo}`)
}
- for 반복문 : 횟수를 기반으로 반복할 때 사용
for (let i = 0; i < 5; i++) {
console.log(`${i + 1}번째 반복문 입니다.`)
}
- while 반복문 : 조건을 기반으로 반복할 때 사용
let i = 0
while (confirm('계속 진행할래?')) {
alert(`${i + 1}번째 반복문입니다.`)
i++
}
- break : switch 조건문이나 반복문을 벗어날 때 사용
for (let i = 1; true; i++) {
alert(i + '번째 반복문입닞다.')
const isContinue = confirm('계속하실꺼?')
if (!isContinue) {
break
}
}
alert('프로그램 종료')
- continue : 반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행
// 1 ~ 10 짝수 합
let outPut = 0
for (let i = 0; i <= 10; i++) {
if (i % 2 === 1) {
//홀수면 현재 반복문을 중지하고 다음 반복문 수행
continue
} else {
outPut += i
}
}
console.log(outPut)
- 직삼각형
let outPut = ''
for (let i = 1; i < 10; i++) {
for (let j = 1; j < i; j++) {
outPut += '*'
}
outPut += '\n'
}
console.log(outPut)
- 피라미드
let outPut = ''
for (let i = 1; i < 15; i++) {
for (let j = 15; j > i; j--) {
outPut += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
outPut += '*'
}
outPut += '\n'
}
console.log(outPut)
- 다이아
let outPut = ''
const size = 5
for (let i = 1; i <= size; i++) {
for (let j = size; j > i; j--) {
outPut += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
outPut += '*'
}
outPut += '\n'
}
for (let i = size - 1; i > 0; i--) {
for (let j = size; j > i; j--) {
outPut += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
outPut += '*'
}
outPut += '\n'
}
console.log(outPut)
============================================================================================
출처 : 혼자 공부하는 자바스크립트
============================================================================================
챕터 2개 해보려고했는데, for문 생각보다 할게 많다.
개발일지 정리하는 것도 생각보다 오래걸리고...
그래도 천천히 나아가야지
언제쯤 답안 코드 안보고 피라미드 딱딱 나올려나 ㅠㅠ
'내일배움캠프 4기 > [Javascript]혼자 공부하는 자바스크립트' 카테고리의 다른 글
05-2. 함수 고급 (0) | 2022.11.04 |
---|---|
05-1. 함수의 기본 형태 (0) | 2022.11.03 |
03. 조건문 (0) | 2022.11.01 |
02. 자료와 변수 (0) | 2022.10.31 |
01. 자바스크립트 개요와 개발환경 설정 (0) | 2022.10.31 |