2. 계산하고 비교하기 (연산자)/2.4 상자에 값 넣기 (할당 연산자)

2.4.2 계산해서 넣기 (+=, -=, *=, /=) - 한 번에 계산하고 저장하는 똑똑한 계산 도우미들

thejavascript4kids 2025. 6. 29. 10:47

📘 2.4.2 계산해서 넣기 (+=, -=, *=, /=) - 한 번에 계산하고 저장하는 똑똑한 계산 도우미들

안녕하세요, 여러분. 지난 시간에 기본 정리 도우미 =에 대해 배우면서, 값을 상자에 저장하는 방법을 익혔어요. 하지만 실제로 프로그램을 만들다 보면 같은 상자의 값을 꺼내서 계산한 후, 그 결과를 다시 같은 상자에 넣는 일이 정말 자주 일어나요.

예를 들어 게임에서 점수를 올리거나, 용돈에서 돈을 빼거나, 체력을 회복시키는 일들 말이에요. 이런 반복적인 일을 더욱 간편하고 똑똑하게 만들어주는 특별한 도우미들이 있답니다. 바로 계산 도우미들이에요.

🧠 새로운 친구들과 만나보기

계산해서 저장하는 일을 한 번에 해주는 똑똑한 도우미들을 소개해드릴게요.

단어 쉬운 설명
계산 저장 도우미들 계산과 저장을 동시에 해주는 특별한 도우미들이에요
더하미 (+=) 기존 값에 새로운 값을 더한 후 그 결과를 다시 저장해주는 친구예요
빼미 (-=) 기존 값에서 새로운 값을 뺀 후 그 결과를 다시 저장해주는 친구예요
곱하미 (*=) 기존 값에 새로운 값을 곱한 후 그 결과를 다시 저장해주는 친구예요
나누미 (/=) 기존 값을 새로운 값으로 나눈 후 그 결과를 다시 저장해주는 친구예요

이 도우미들의 이름에서 알 수 있듯이, 각각은 수학 계산과 저장이라는 두 가지 일을 하나로 합친 거예요. 예를 들어 점수 += 10은 "점수에 10을 더한 후, 그 결과를 다시 점수 상자에 넣어줘"라는 뜻이에요.

✨ 계산 도우미들의 특별한 능력

계산 도우미들은 프로그래밍에서 효율성과 이해하기 쉬움을 동시에 향상시켜주는 중요한 친구들이에요. 이들의 가장 큰 장점은 반복을 없애준다는 점이에요.

기존 방식으로 점수 = 점수 + 10이라고 써야 했던 것을 점수 += 10으로 간단히 표현할 수 있어요. 이는 단순히 코드가 짧아지는 것을 넘어서, 의도가 더 명확해지는 효과도 가져와요. 코드를 읽는 사람이 "아, 점수를 10점 올리는구나"라고 바로 이해할 수 있거든요.

또한 계산 도우미들은 실수를 줄여주는 역할도 해요. 긴 이름을 두 번 써야 하는 기존 방식에서는 한쪽을 잘못 쓸 가능성이 있지만, 계산 도우미들을 사용하면 이름을 한 번만 쓰기 때문에 그런 실수를 원천적으로 방지할 수 있어요.

재미있는 비유: 똑똑한 계산기가 있는 저금통

계산 도우미들을 더 쉽게 이해하기 위해 '똑똑한 계산기가 달린 저금통'에 비유해보아요.

일반적인 저금통에 돈을 넣으려면 먼저 저금통을 열어서 현재 얼마가 들어있는지 확인하고, 그 금액에 새로 넣을 돈을 더해서 총액을 계산한 다음, 그 결과를 기억하면서 저금통에 다시 넣어야 해요. 이 과정은 번거롭고 실수하기 쉬워요.

하지만 특별한 저금통은 달라요. 저금통에 "+ 500원" 버튼이 있어서, 그 버튼만 누르면 자동으로 현재 금액에 500원을 더해서 새로운 총액으로 업데이트해줘요. "- 200원" 버튼을 누르면 200원을 빼주고, "× 2" 버튼을 누르면 현재 금액을 2배로 만들어줘요.

이처럼 계산 도우미들은 "계산과 저장을 한 번에" 처리해주는 똑똑한 도구라고 할 수 있어요. 우리는 어떤 계산을 하고 싶은지만 말해주면, 나머지는 자동으로 처리돼요.

예를 들어:

  • 더하미 (+=): "현재 있는 것에 이걸 더해줘!"
  • 빼미 (-=): "현재 있는 것에서 이걸 빼줘!"
  • 곱하미 (*=): "현재 있는 것에 이걸 곱해줘!"
  • 나누미 (/=): "현재 있는 것을 이걸로 나누어줘!"

🎯 왜 계산 도우미들이 좋을까요?

계산 도우미들이 프로그래밍에서 널리 사용되는 이유는 여러 가지예요.

첫 번째는 코드가 간단해져요. 카운트 = 카운트 + 1 대신 카운트 += 1로 쓸 수 있어서 코드가 훨씬 짧아져요. 특히 이름이 길어질수록 이 장점은 더욱 커져요. 플레이어경험치점수 = 플레이어경험치점수 + 100 같은 긴 코드를 플레이어경험치점수 += 100으로 줄일 수 있다면 얼마나 편리할까요?

두 번째는 의미가 더 명확해져요. +=를 보면 "더하기", -=를 보면 "빼기"라는 의도가 바로 전달돼요. 이는 코드를 읽는 사람이 프로그래머의 의도를 더 쉽게 파악할 수 있게 해줘요.

세 번째는 실생활에서 자주 써요. 게임에서 점수를 올리거나, 쇼핑몰에서 총 금액을 계산하거나, 카운터에서 숫자를 세는 등 실제 프로그래밍에서 정말 자주 사용되는 패턴들을 효율적으로 처리할 수 있어요.

⚙️ 계산 도우미들과 대화하는 방법 배우기

계산 도우미들의 기본 사용법은 정말 직관적이에요.

상자이름 += 값;    // 상자에 값을 더한 결과를 저장
상자이름 -= 값;    // 상자에서 값을 뺀 결과를 저장  
상자이름 *= 값;    // 상자에 값을 곱한 결과를 저장
상자이름 /= 값;    // 상자를 값으로 나눈 결과를 저장

이 네 가지가 가장 기본적이고 자주 사용되는 계산 도우미들이에요. 각각은 해당하는 수학 계산을 한 후, 그 결과를 원래 상자에 다시 넣어줘요.

기존 방식과 비교해보기:

  • 기존 방식: 점수 = 점수 + 10 (이름을 두 번 써야 함)
  • 새로운 방식: 점수 += 10 (이름을 한 번만 쓰면 됨)

기존 방식에서는 이름을 두 번 써야 하고, 저장과 계산이라는 두 가지 의도가 하나의 문장에 섞여 있어서 이해하는 데 시간이 걸려요. 반면 계산 도우미를 사용하면 이름은 한 번만 쓰고, "더하기", "빼기" 같은 행동에 집중할 수 있어서 의도가 더 명확해져요.

🧪 직접 해보면서 배우기

이제 실제로 계산 도우미들이 어떻게 일하는지 함께 실험해볼게요!

🔹 첫 번째 실험: 게임 점수 시스템에서 계산 도우미들 활용하기

첫 번째 실험에서는 게임에서 점수가 변화하는 다양한 상황을 통해 계산 도우미들의 사용법을 알아보아요.

// 게임을 시작할 때의 처음 점수
let gameScore = 0;              // gameScore 상자를 만들고 0을 넣기

console.log("게임 시작! 현재 점수:", gameScore);    // 0

// 첫 번째 적을 물리쳤을 때 점수 획득
gameScore += 100;               // gameScore에 100을 더해서 다시 넣기
console.log("첫 번째 적 처치 후:", gameScore);     // 100

// 특별한 아이템을 획득해서 점수가 2배로 증가
gameScore *= 2;                 // gameScore에 2를 곱해서 다시 넣기
console.log("특별 아이템 사용 후:", gameScore);     // 200

// 실수를 해서 점수가 50점 차감
gameScore -= 50;                // gameScore에서 50을 빼서 다시 넣기
console.log("실수 패널티 후:", gameScore);         // 150

// 보너스 스테이지에서 점수를 절반으로 나누어 얻은 보너스 점수 추가
let bonusScore = gameScore / 2;                    // 150 / 2 = 75
gameScore += bonusScore;        // gameScore에 bonusScore를 더해서 다시 넣기
console.log("보너스 스테이지 후:", gameScore);      // 225 (150 + 75)

// 게임 종료 시 최종 점수를 10으로 나누어 등급 계산용 점수 만들기
let gradeScore = gameScore;     // gradeScore 상자를 만들고 gameScore 값 복사
gradeScore /= 10;               // gradeScore를 10으로 나누어서 다시 넣기
console.log("등급 계산용 점수:", gradeScore);       // 22.5 (225 / 10)
console.log("최종 게임 점수:", gameScore);          // 225 (원래 점수는 그대로)

// 여러 단계를 거친 점수 변화 요약
console.log("\n점수 변화 요약:");
console.log("시작: 0점");
console.log("적 처치 후: 0 + 100 = 100점");
console.log("아이템 사용 후: 100 × 2 = 200점");
console.log("패널티 후: 200 - 50 = 150점");
console.log("보너스 후: 150 + 75 = 225점");

이 실험에서 우리는 계산 도우미들이 실제 게임 상황에서 어떻게 사용되는지 볼 수 있어요. 점수를 올리고, 배수를 적용하고, 패널티를 차감하는 모든 과정이 각각의 계산 도우미로 간단명료하게 표현돼요. 만약 기존 방식을 사용했다면 gameScore = gameScore + 100 같은 긴 코드를 반복해서 써야 했을 거예요.

🔹 두 번째 실험: 용돈 관리 시스템 만들기

두 번째 실험에서는 일상생활의 용돈 관리 상황을 통해 계산 도우미들의 실용성을 확인해보아요.

// 이번 달 받은 용돈
let pocketMoney = 10000;        // pocketMoney 상자를 만들고 10000을 넣기

console.log("이번 달 용돈:", pocketMoney + "원");   // 10000원

// 친구와 함께 문구점에서 쇼핑하기
let stationeryPrice = 1500;     // 문구 가격을 stationeryPrice 상자에 넣기
pocketMoney -= stationeryPrice; // pocketMoney에서 stationeryPrice를 빼서 다시 넣기
console.log("문구 구입 후:", pocketMoney + "원");   // 8500원 (10000 - 1500)

// 할머니께서 용돈을 추가로 주셨어요
let grandmaBonus = 5000;        // 할머니가 주신 용돈을 grandmaBonus 상자에 넣기
pocketMoney += grandmaBonus;    // pocketMoney에 grandmaBonus를 더해서 다시 넣기
console.log("할머니 용돈 추가 후:", pocketMoney + "원"); // 13500원 (8500 + 5000)

// 동생과 함께 간식을 사먹기로 해서 반반 나누어 계산하기
let snackPrice = 3000;          // 간식 가격을 snackPrice 상자에 넣기
let myShare = snackPrice / 2;   // 내가 낼 몫을 계산해서 myShare 상자에 넣기 (1500원)
pocketMoney -= myShare;         // pocketMoney에서 myShare를 빼서 다시 넣기
console.log("간식 나누어 산 후:", pocketMoney + "원"); // 12000원 (13500 - 1500)

// 어버이날 선물을 사기 위해 형과 돈을 합치기로 했어요
let brotherMoney = 8000;        // 형의 돈을 brotherMoney 상자에 넣기
let totalGiftMoney = pocketMoney + brotherMoney;   // 총 선물 구입 자금 계산 (20000원)

// 선물 가격이 총 합친 돈의 3/4 정도
let giftPrice = totalGiftMoney * 3 / 4;           // 15000원 (20000 * 3 / 4)
pocketMoney -= giftPrice / 2;   // 선물값의 절반만 부담 (7500원 부담)
console.log("선물 구입 후 남은 용돈:", pocketMoney + "원"); // 4500원 (12000 - 7500)

// 남은 용돈을 저금하기 위해 저금통에 넣기
let savings = 0;                // 저금통을 savings 상자로 만들고 0을 넣기
savings += pocketMoney;         // savings에 pocketMoney를 더해서 다시 넣기
pocketMoney = 0;                // pocketMoney는 0으로 만들기 (모두 저금)
console.log("저금통에 저금된 금액:", savings + "원");      // 4500원
console.log("남은 용돈:", pocketMoney + "원");            // 0원

// 용돈 관리 요약
console.log("\n용돈 관리 요약:");
console.log("처음 용돈: 10,000원");
console.log("문구 구입: -1,500원 = 8,500원");
console.log("할머니 용돈: +5,000원 = 13,500원");
console.log("간식 나누어 내기: -1,500원 = 12,000원");
console.log("선물 구입: -7,500원 = 4,500원");
console.log("최종 저금: 4,500원");

이 실험을 통해 계산 도우미들이 실생활의 금전 관리에서 얼마나 직관적으로 사용될 수 있는지 확인할 수 있어요. 돈을 쓰고, 받고, 나누어 내는 모든 상황이 자연스럽게 계산 도우미들로 표현돼요.

🔹 세 번째 실험: 글자에서도 사용할 수 있는 += 도우미

세 번째 실험에서는 숫자뿐만 아니라 글자에서도 계산 도우미를 사용할 수 있다는 점을 알아보아요.

// 편지를 써보는 상황
let letter = "안녕하세요";      // letter 상자를 만들고 "안녕하세요"를 넣기

console.log("편지 시작:", letter);                  // "안녕하세요"

// 받는 사람의 이름 추가하기
letter += ", 민수님!";          // letter에 ", 민수님!"을 연결해서 다시 넣기
console.log("이름 추가 후:", letter);               // "안녕하세요, 민수님!"

// 인사말 추가하기
letter += " 오늘 날씨가 정말 좋네요.";  // letter에 인사말을 연결해서 다시 넣기
console.log("인사말 추가 후:", letter);             // "안녕하세요, 민수님! 오늘 날씨가 정말 좋네요."

// 본문 내용 추가하기
letter += " 지난주에 약속했던 축구 경기는 어떠셨나요?";  // 본문 연결
console.log("본문 추가 후:", letter);

// 마무리 인사 추가하기
letter += " 다음에 또 만나서 이야기해요.";  // 마무리 인사 연결
console.log("마무리 추가 후:", letter);

// 서명 추가하기
let senderName = " 친구 철수 올림";    // 서명을 senderName 상자에 넣기
letter += senderName;               // letter에 senderName을 연결해서 다시 넣기
console.log("최종 편지:", letter);

console.log("\n글자 연결 실험:");

// 숫자와 글자를 섞어서 사용하는 경우
let score = 85;                     // 점수를 score 상자에 넣기
let message = "시험 점수는 ";        // 메시지를 message 상자에 넣기
message += score;                   // message에 score를 연결 (숫자가 글자로 변환됨)
message += "점입니다.";              // message에 나머지 글자 연결
console.log(message);               // "시험 점수는 85점입니다."

// 여러 정보를 조합한 소개 메시지 만들기
let studentInfo = "";               // 빈 글자로 studentInfo 상자 만들기
let name = "김지수";                // 이름을 name 상자에 넣기
let grade = 3;                      // 학년을 grade 상자에 넣기
let favoriteSubject = "과학";       // 좋아하는 과목을 favoriteSubject 상자에 넣기

studentInfo += "이름: " + name;     // studentInfo에 이름 정보 연결
studentInfo += ", 학년: " + grade + "학년";  // studentInfo에 학년 정보 연결
studentInfo += ", 좋아하는 과목: " + favoriteSubject;  // studentInfo에 과목 정보 연결

console.log("학생 정보:", studentInfo);    // "이름: 김지수, 학년: 3학년, 좋아하는 과목: 과학"

// 단계별 글자 연결 과정 보기
let step1 = "";                     // 빈 상자로 시작
console.log("\n단계별 연결 과정:");
console.log("1단계:", step1);       // ""

step1 += "첫 번째";                // "첫 번째" 추가
console.log("2단계:", step1);       // "첫 번째"

step1 += " 두 번째";               // " 두 번째" 추가
console.log("3단계:", step1);       // "첫 번째 두 번째"

step1 += " 세 번째";               // " 세 번째" 추가
console.log("4단계:", step1);       // "첫 번째 두 번째 세 번째"

이 실험을 통해 += 도우미가 글자에서는 연결(붙이기) 기능을 한다는 것을 알 수 있어요. 숫자에서는 덧셈이지만, 글자에서는 연결이 되는 거죠. 이는 자바스크립트의 특별한 능력 때문이에요.

🧚‍♀️ 이야기로 다시 배우기: 똑똑한 계산 도우미들

지금까지 배운 내용을 조용한 이야기로 다시 정리해볼게요.

옛날 한 마을에 네 명의 특별한 계산 도우미들이 살고 있었어요. 이들의 이름은 더하미(+=), 빼미(-=), 곱하미(*=), 나누미(/=)였어요.

마을 사람들이 계산이 필요할 때마다, 이 도우미들을 불러서 도움을 받았어요. 예를 들어 빵집 아저씨가 "오늘 팔린 빵이 50개인데, 오후에 30개를 더 팔았어"라고 하면, 더하미가 나타나서 자동으로 계산해줘요.

더하미는 이렇게 말해요: "현재 50개에서 30개를 더하면 80개네요! 바로 장부에 80개로 적어드릴게요!" 그러면 빵집 아저씨는 복잡한 계산 과정을 거칠 필요 없이 바로 결과를 확인할 수 있었어요.

빼미는 용돈 관리를 도와줘요. "용돈이 5000원 있는데 과자를 1500원어치 샀어"라고 하면, 빼미가 즉시 "5000원에서 1500원을 빼면 3500원이 남네요!" 하고 알려줘요.

곱하미는 특별한 상황에서 활약해요. 게임에서 "현재 점수가 100점인데 보너스로 점수가 2배가 된다"고 하면, 곱하미가 "100점에 2를 곱하면 200점이에요!"라고 계산해줘요.

나누미는 공평하게 나누어야 할 때 도움을 줘요. "사탕 20개를 친구 4명과 나누어 먹으려고 해"라고 하면, 나누미가 "20개를 4로 나누면 한 명당 5개씩이에요!"라고 답해줘요.

이 네 도우미들의 공통점은 한 번에 계산과 기록을 모두 처리해준다는 거예요. 사람들은 복잡한 과정을 거칠 필요 없이 "더해줘", "빼줘", "곱해줘", "나누어줘"라고만 말하면 돼요.

마을 사람들은 이 도우미들 덕분에 일상생활이 훨씬 편해졌고, 계산 실수도 줄어들었어요. 그리고 무엇보다 자신이 원하는 게 뭔지 더 명확하게 표현할 수 있게 되었답니다.

🧠 자주 하는 실수와 주의할 점

친구들이 계산 도우미들을 사용할 때 자주 하는 실수들을 살펴보고, 어떻게 피할 수 있는지 알아보아요.

❌ 실수 1: 등호(=) 위치를 잘못 써서 의도와 다른 결과 발생

let score = 100;                // 점수를 score 상자에 넣기

// ❌ 잘못된 예시: =+ 순서로 쓰기
score =+ 50;                                    // score = +50과 같음 (50을 저장)
console.log(score);                             // 50 (우리가 원한 150이 아님!)

// ✅ 올바른 예시: += 순서로 쓰기  
score = 100;                                    // 다시 100으로 설정
score += 50;                                    // 100 + 50 = 150
console.log(score);                             // 150 (올바른 결과)

// 다른 도우미들도 마찬가지예요
let money = 1000;               // money 상자에 1000 넣기

// ❌ 잘못된 순서들
// money =- 200;  // 틀림!
// money =* 2;    // 틀림!
// money =/ 5;    // 틀림!

// ✅ 올바른 순서들
money -= 200;                   // money에서 200 빼기 (800)
money *= 2;                     // money에 2 곱하기 (1600)
money /= 4;                     // money를 4로 나누기 (400)
console.log(money);             // 400

이런 실수가 발생하는 이유는 계산 도우미들의 순서를 헷갈리기 때문이에요. 항상 수학 기호가 먼저, 등호가 나중에 와야 한다는 점을 기억해야 해요.

❌ 실수 2: 고정값(const)에 계산 도우미 사용

// ❌ 에러가 발생하는 코드
const score = 100;              // 고정값으로 score 상자 만들기
// score += 50;                 // TypeError: 고정값에는 다시 넣을 수 없어요

// ✅ 올바른 방법: let 사용하기
let mutableScore = 100;         // 변경 가능한 상자로 mutableScore 만들기
mutableScore += 50;             // 정상 작동
console.log(mutableScore);      // 150

const로 만든 상자는 다시 넣기를 할 수 없어요. 계산 도우미들은 모두 다시 넣기를 포함하므로 const 상자에는 사용할 수 없어요.

마음을 담아 준비한 연습 문제들

여러분이 지금까지 배운 것들을 차분히 정리해볼 수 있는 시간을 마련했어요. 이 문제들은 마치 겨울 밤 책을 읽으며 마시는 따뜻한 차처럼, 여러분의 이해를 조용히 깊게 해줄 거예요.

문제를 풀면서 서두르지 마세요. 컴퓨터 언어도 결국 우리가 일상에서 쓰는 말처럼, 차근차근 익혀가면 돼요. 여러분 각자의 속도에 맞춰 천천히 해보세요.

Ex1) 기존 방식을 계산 도우미로 바꿔보자

let health = 100;               // 체력을 health 상자에 넣기

// 기존 방식을 계산 도우미로 바꿔보기
health = health - 30;           // 이 줄을 계산 도우미로 바꿔보세요

console.log("체력:", health);   // 체력이 70이 되어야 해요

// 정답: health -= 30;

Ex2) 쇼핑몰 총액 계산 시스템을 만들어보자

let totalPrice = 0;             // 총 가격을 담을 상자 만들기
let itemPrice1 = 1500;          // 첫 번째 상품 가격
let itemPrice2 = 2300;          // 두 번째 상품 가격  
let itemPrice3 = 800;           // 세 번째 상품 가격

// += 도우미를 사용해서 각 상품 가격을 총액에 더해보기
totalPrice += itemPrice1;       // totalPrice에 itemPrice1 더하기
totalPrice += itemPrice2;       // totalPrice에 itemPrice2 더하기
totalPrice += itemPrice3;       // totalPrice에 itemPrice3 더하기

console.log("총 가격:", totalPrice + "원");  // "총 가격: 4600원" 출력

// 단계별 확인해보기
console.log("계산 과정:");
console.log("0 + 1500 = 1500원");
console.log("1500 + 2300 = 3800원");
console.log("3800 + 800 = 4600원");

🔄 복습 문제: 이전 단원들과 2.4.1 내용 복습하기

이전에 배운 내용들을 잊지 않도록 복습해볼게요!

복습 문제 1) 변수와 데이터 타입 (1단원 복습)

// 1단원에서 배운 변수 만들기와 데이터 타입을 복습해보세요!

// let과 const로 다양한 상자 만들기
let currentLevel = 5;           // 현재 레벨 (바뀔 수 있음)
const maxLevel = 100;           // 최대 레벨 (바뀌지 않음)
let playerName = "용사김철수";   // 플레이어 이름
let hasSpecialPower = false;    // 특별한 능력 있는지

console.log("현재 레벨:", currentLevel);
console.log("최대 레벨:", maxLevel);
console.log("플레이어 이름:", playerName);
console.log("특별 능력:", hasSpecialPower);

// 데이터 타입 확인하기
console.log("레벨 타입:", typeof currentLevel);         // number
console.log("이름 타입:", typeof playerName);          // string
console.log("능력여부 타입:", typeof hasSpecialPower);   // boolean

복습 문제 2) 계산과 비교 연산자 (2.1, 2.2단원 복습)

// 2.1단원: 계산하기 복습
let baseScore = 1000;
let bonusScore = 250;

console.log("=== 계산 연산자 복습 ===");
console.log("총 점수:", baseScore + bonusScore);     // 1250
console.log("점수 차이:", baseScore - bonusScore);   // 750
console.log("보너스 2배:", bonusScore * 2);          // 500
console.log("평균 점수:", (baseScore + bonusScore) / 2); // 625

// 2.2단원: 비교 연산자 복습
let playerScore = 1100;
let passScore = 1000;

console.log("\n=== 비교 연산자 복습 ===");
console.log("합격 점수 달성:", playerScore >= passScore);     // true
console.log("정확히 합격 점수:", playerScore === passScore);  // false
console.log("합격 점수 미달:", playerScore < passScore);      // false
console.log("초과 달성:", playerScore > passScore);          // true

복습 문제 3) 논리 연산자 (2.3.1~2.3.3단원 복습)

// 방금 전에 배운 &&, ||, ! 연산자 복습하기
let hasItem = true;         // 아이템 있나요?
let hasSkill = false;       // 스킬 배웠나요?
let levelEnough = true;     // 레벨이 충분한가요?

console.log("=== 논리 연산자 복습 ===");

// && 검사관: 모든 조건이 맞아야 성공
let canUseSpecialAttack = hasItem && hasSkill && levelEnough;  // 특수 공격 가능?
console.log("특수 공격 가능:", canUseSpecialAttack);           // false (스킬이 없어서)

// || 검사관: 하나라도 맞으면 성공
let canFight = hasItem || hasSkill || levelEnough;             // 전투 가능?
console.log("전투 가능:", canFight);                          // true (아이템과 레벨이 있어서)

// ! 검사관: 반대로 바꿔주기
let needsSkill = !hasSkill;                                   // 스킬이 필요한가?
let notReady = !canFight;                                     // 준비가 안 됐나?

console.log("스킬 필요:", needsSkill);                        // true
console.log("준비 안됨:", notReady);                          // false

복습 문제 4) 기본 할당 연산자 (2.4.1단원 복습)

// 바로 전에 배운 기본 할당 연산자(=) 복습하기
let playerName = "김영희";      // 플레이어 이름 할당
let playerGold = 500;           // 플레이어 골드 할당
let playerExperience = 0;       // 플레이어 경험치 할당

console.log("=== 기본 할당 연산자 복습 ===");
console.log("초기 상태:");
console.log("이름:", playerName);
console.log("골드:", playerGold);
console.log("경험치:", playerExperience);

// 값 변경해보기
playerGold = 750;               // 골드 변경
playerExperience = 150;         // 경험치 변경

console.log("변경 후:");
console.log("이름:", playerName);        // "김영희" (그대로)
console.log("골드:", playerGold);        // 750 (변경됨)
console.log("경험치:", playerExperience); // 150 (변경됨)

// 계산 결과 할당하기
let totalValue = playerGold + playerExperience;  // 계산 결과를 새 변수에 할당
console.log("총 가치:", totalValue);             // 900 (750 + 150)

// 이제 복합 할당 연산자와 비교해보기
let oldWay = playerGold;        // 기존 방식으로 값 복사
oldWay = oldWay + 100;         // 기존 방식으로 100 추가

let newWay = playerGold;        // 새로운 방식으로 값 복사  
newWay += 100;                 // 복합 할당 연산자로 100 추가

console.log("기존 방식 결과:", oldWay);    // 850
console.log("새로운 방식 결과:", newWay);  // 850 (같은 결과)
console.log("하지만 새로운 방식이 더 간편해요!");

설명:

  • 기본 할당 연산자(=)는 오른쪽 값을 왼쪽 변수에 저장해요
  • 복합 할당 연산자(+=, -=, *=, /=)는 계산과 저장을 한 번에 해요
  • 변수 = 변수 + 값 대신 변수 += 값을 사용하면 더 간편해요!

✅ 학습 완료 체크리스트

이번 시간에 배운 내용들을 모두 이해했는지 확인해보세요!

학습 내용 이해했나요?
복합 할당 연산자 기본 개념
+=, -=, *=, /= 사용법
기존 방식과의 차이점
글자 연결에서의 += 활용
자주 하는 실수들
실전 예제 이해
이전 단원들 복습 완료
기본 할당과 복합 할당 차이

📂 마무리 정보

오늘 배운 2.4.2 내용이 여러분의 자바스크립트 지식 상자에 잘 저장되었나요?

지금까지 계산 도우미들 +=, -=, *=, /=의 모든 특징과 활용법을 자세히 알아보았어요. 이들은 단순히 코드를 짧게 만들어주는 것을 넘어서, 프로그래머의 의도를 더 명확하게 표현하고 실수를 줄여주는 중요한 도구들이에요. 앞으로 여러분이 프로그래밍을 하면서 계산과 저장이 함께 필요한 상황에서 자주 사용하게 될 거예요!

기억할 점: 오늘 배운 내용을 꼭 연습해보시고, 궁금한 점이 있으면 언제든 다시 돌아와서 읽어보세요.



🚀 더 체계적인 JavaScript 학습을 원하신다면?
이 포스팅에서 다룬 내용을 실제로 실습해보세요!
무료 JavaScript 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.
📝 실시간 코드 실행 📊 학습 진도 관리 👥 체계적 커리큘럼
📚 171개 체계적 학습레슨 · 📋 855개 4지선다 연습문제 · 🆓 완전 무료 · ⚡ 즉시 시작