자바스크립트 Chapter 5. 단순 반복

2025. 5. 10. 17:41·개인공부/코드트리 JS

Lesson 1. for문 a → b 1씩 증가

비슷한 내용을 반복한다면 일일히 쓰는 것이 번거로울 것이다

이럴 때는 for문을 사용해 반복을 쉽게 할 수 있다

반복문 for 문의 형태는 아래와 같다

 

for( 초기화식 ; 조건식 ; 증감식 ) {
    
    반복할 코드

}

초기화식에서는 for loop의 초기조건을 설정할 수 있고,

이후 조건식에 해당한다면 for loop를 진행한다

한 번 진행했다면 증감식에 의해 반복횟수를 셀 수 있다

for (let i = a; i < b; i++) {
    반복할 코드
}

보통은 초기조건에서 i j k라는 변수를 사용한다

여기서 i ++는 i+=1과 같은데 ++i --i i-- 와도 같은 형태도 쓸 수 있다

앞에 붙은 것은 전위 연산자, 뒤에 붙은 것은 후위 연산자라고 부르는데

후위 연산자인 경우 코드실행이 이루어지고 이후 증가(감소)가 이루어진다

 

! a부터 b까지의 수를 공백을 사이에 두고 출력하려면 다음과 같은 코드를 사용할 수 있다

let a = 3, b = 6;
let result = "";

for (let i = a; i <= b; i++) {
    result += (i + " ");
}

console.log(result);

 

Lesson 2. for문 a → b 2씩 증가 

2씩 증가하려면 증감식을 고쳐주면 된다

i +=2

 

Lesson 3. for문 b → a 1씩 감소

for (let i = 10; i > 4; i--) {
    console.log(i);
}
console.log("Done");

Lesson 4. while문 a → b 1씩 증가

for문이 아닌 다른 방법으로도 반복을 시킬 수 있다

바로 while문이다

while 은 ( ) 괄호안에 조건이 쓰여있고, 조건을 만족하는 경우에만 { } 중괄호 안의 내용을 수행한다

while (조건) {

    여기에 조건을 만족할 때만 수행되었으면 
    하는 코드를 작성

}

 

JS에는 while과 비슷한 do-while문도 존재하는데

while문과 비교했을 때 do-while문은 무조건 한 번 반복문을 실행한다는 점이 다르다

do {

   여기에 조건을 만족할 때만 수행되었으면 
   하는 코드를 작성, 무조건 한번은 실행됨

} while (조건);

 

Lesson 5. while문 a → b 2씩 증가

2씩 증가시키려면 반복문 안에서 원하는 증감값을 설정하면 된다

for문과 비교했을 때, 정지를 위한 변수를 따로 설정해야하는 것이 다르다는 점을 명심하자

 

let i = 5; // 시작 값

while (i <= 10) { // 계속 반복할 조건   
    console.log(i); // 원하는 코드 작성
    i += 2; // 원하는 증감값 설정                  
}

 

 

Lesson 10. cnt 활용하기 (cnt)

let a = 3, b = 8;
let cnt = 0;

for (let i = a; i <= b; i++) {
    if (i % 2 === 0) {
        cnt++;
    }
}

console.log(cnt);

횟수를 쓸 때는 주로 변수명 cnt를 활용한다

cnt를 0으로 초기화해두는 걸 잊지말자

 

Lesson 11. sum 계산하기 (sumVal)

합계를 계산할 때는 sumVal이라는 변수를 주로 활용한다

cnt와 마찬가지로 0으로 초기화해두는 걸 잊지말자

(camel case에 맞춰서 sumVal이라고 쓰는 것이다)

 

Lesson 12. Prod 계산하기 (prod)

조건 내의 모든 짝수의 곱을 구하는 프로그램을 짤 때에는

초기값을 1로 갖는 prod를 활용할 수 있다

let prod = 1;
let a = 3, b = 8;

for (let i = a; i <= b; i++) {
    if (i % 2 === 0) {
        prod *= i;
    }
}

console.log(prod);

 

Lesson 13. continue문

continue는 if와 함께 쓰이며, 해당 조건이 만족할 경우 밑의 코드를 실행하지 않은 채로

다시 for loop를 실행하게 된다

let a = 5, b = 8;
let prod = 1;

for (let i = a; i <= b; i++) {
    console.log("current val is " + i);
    if (i % 2 === 0) {
        console.log("val is even");
        continue;
    }
    console.log("val is odd");
    prod *= i;
}

console.log(prod);

 

Lesson 14. break문

반복문을 끝내려면 if와 함께 사용하는 break문을 사용해볼 수 있다

for, while문 안에서만 사용하는 break문은 continue와 유사한 방법이지만

for loop로 돌아가는 continue와는 달리 for loop를 탈출한다는 차이가 있다

let a = 3, b = 101;
let prod = 1;

for (let i = a; i <= b; i++) {
    console.log("current val is " + i);
    if (i % 5 === 0) {
        console.log("val is multiple of 5");
        break;
    }
    console.log("val is not a multiple of 5");
    prod *= i;
}

console.log(prod);

Lesson 15. 무한 루프

입력을 몇 번 받아야할지 모르는 경우에는 while(true)를 이용해 무한루프를 만들고

break를 사용해 빠져나오는 방법을 사용할 수 있다

while (true) {
    코드 1
    if (조건){
        코드2
        break;
    }
    코드3
}
코드4

물론 for 문도 무한루프 만드는데 사용할 수 있다

초기화식, 조건식, 증감식을 모두 생략하면 for 내부 코드가 무한 반복된다

for (;;) {
    console.log("b");
}

 

const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split("\n");
let index = 0;

while(true){
    let num = Number(input[index++]);
    if (num == 1) console.log("John");
    else if (num == 2) console.log("Tom");
    else if (num == 3) console.log("Paul");
    else if (num == 4) console.log("Sam");
    else break;   
}

console.log("Vacancy");

위 코드는 예제 문제 중 하나의 풀이인데

** 이처럼 index 사용에 주의하도록 하자!

index를 조정하거나 break를 넣지 않으면 무한루프에서 빠져나올 수 없다 **

 

Lesson 17. 단 하나라도 만족하는 경우

a부터 b까지의 수 중 하나라도 짝수인 것이 있을 때를 확인하고 싶다면

for문을 사용함과 동시에 boolean type 변수를 활용해 해결할 수 있다

 

boolean (true , false)

const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split(" ");
let a = Number(input[0]);
let b = Number(input[1]);

let satisfied = false;
for (let i = a; i <= b; i++) {
    if (i % 2 === 0) {
        satisfied = true;
    }
}

if (satisfied === true) {
    console.log("Exists");
}
else {
    console.log("Not exists");
}

삼항연산자 꿀팁

↓

더보기
const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split(" ");

let a = Number(input[0]);
let b = Number(input[1]);
let c = Number(input[2]);

let satisfied = true;

for (let i = a; i<=b; i++){
    if(i%c==0) {
        satisfied = false;
        break;
    }
}

console.log(satisfied?"YES":"NO");

boolean으로 작성한 경우 이렇게 삼항 연산자를 console.log(satisfied?"YES":"NO");로 사용할 수 있다

여전히 하는 실수 모음 ↓

 

더보기

let input = Number(fs.readFileSync(0).toString().trim().split("\n"));
이 문제입니다!


fs.readFileSync(0).toString().trim().split("\n")은 여러 줄의 문자열을 줄바꿈 기준으로 나눠서 배열로 만들어요.

그런데 여기에 Number(...)를 씌우면, 배열 전체를 숫자로 변환하려고 해서 **NaN (또는 undefined처럼 보이는 결과)**가 나올 수 있어요.

 

//고친코드

const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split("\n");

let satisfied = true;

for (let i=0; i<5; i++){
    let x = Number(input[i]);
    if (x%3!=0){
        satisfied = false;
        break;
    }
}

console.log(satisfied?1:0);

 

 

 

'개인공부 > 코드트리 JS' 카테고리의 다른 글

자바스크립트 Chapter 6. 다중반복문  (0) 2025.05.10
자바스크립트 Chapter 4. 조건문  (0) 2025.05.06
자바스크립트 Chapter 3. 연산자  (0) 2025.04.29
자바스크립트 Chapter 2. 입출력  (0) 2025.04.29
자바스크립트 Chapter 1. 기본 출력  (0) 2025.03.04
'개인공부/코드트리 JS' 카테고리의 다른 글
  • 자바스크립트 Chapter 6. 다중반복문
  • 자바스크립트 Chapter 4. 조건문
  • 자바스크립트 Chapter 3. 연산자
  • 자바스크립트 Chapter 2. 입출력
피까츄
피까츄
프로그래밍 마스터가 될테야
  • 피까츄
    프로그래밍 마스터
    피까츄
  • 전체
    오늘
    어제
    • 분류 전체보기 (64) N
      • 컴퓨터가 이상해요 모음집 (3)
      • 프로그래밍 (0)
      • 회고 (0)
      • 1학년 (21)
        • 명품 HTML+CSS+JS (10)
        • 쉽게 배우는 C언어 Express (2)
        • R언어 (9)
      • 2학년 (3)
        • C언어로 쉽게 풀어쓴 자료구조 (1)
        • 프로그래밍 언어론 (2)
      • 개인공부 (24) N
        • 백준 (17)
        • 코드트리 JS (6) N
        • 코테 공부 (1) N
      • 교재 (9)
        • 이것이 C++이다 (0)
        • 이것이 JAVA다 (0)
        • 혼자 공부하는 컴퓨터구조 + 운영체제 (1)
        • 혼자 공부하는 데이터통신 (0)
        • 코어 자바스크립트 (8)
      • 유데미 (3)
        • 100일 코딩 챌린지 (3)
  • 블로그 메뉴

    • 방명록
    • 그림블로그
    • 3D 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우분투java
    js #자바스크립트_기초
    작업표시줄클릭안됨
    우분투 설치 오류
    윈도우 기능 켜기
    the package javax.swing is not accessible
    복습
    프로그래밍언어론
    HTML5+CSS3+Javascript 웹 프로그래밍 #연습문제 #이론문제 #실습문제 #풀이 #정답
    0x80370102오류코드
    우분투C
    가상현실 설정
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
피까츄
자바스크립트 Chapter 5. 단순 반복
상단으로

티스토리툴바