---
id: c-break-continue
title: "C Break and Continue"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["break statement", "continue statement", "loop control", "C break continue"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.86
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["c", "programming-language", "w3schools", "loops", "break", "continue"]
raw_sources: ["https://www.w3schools.com/c/c_break_continue.php"]
applied_in: []
github_commit: ""
---

# [[C Break and Continue]]

## 🎯 한 줄 통찰 (One-line insight)
`break` and `continue` are the same two keywords across BOTH switch statements and loops, but their meaning shifts by context — the source explicitly notes `break` was already seen "jumping out" of a `switch` block, and here it does the analogous thing for a LOOP (stop entirely), while `continue` has no switch equivalent at all — meaning `break`'s core behavior ("exit the current block early") generalizes across constructs, but `continue`'s "skip to next iteration" concept is loop-specific. [S1]

## 🧠 핵심 개념 (Core concepts)
- **`break`** — stops the loop COMPLETELY, immediately, regardless of remaining iterations. [S1]
- **`continue`** — skips the REST of the current iteration's body and jumps straight to the next iteration (does not stop the loop). [S1]
- **Combinability** — `break` and `continue` can coexist in the same loop, each triggered by different conditions. [S1]
- **Works in both `for` and `while` loops** — the same semantics apply regardless of loop type. [S1]
- **Real-world pattern: skip-then-stop** — using `continue` to skip invalid/unwanted values while using `break` to halt entirely on a sentinel value (like a zero marking "end of valid data"). [S1]

## 📖 세부 내용 (Details)
- `break` stopping a for loop at i==4: `for (i = 0; i < 10; i++) { if (i == 4) { break; } printf("%d\n", i); }` — prints 0,1,2,3 then stops entirely. [S1]
- `continue` skipping just one value: `for (i = 0; i < 10; i++) { if (i == 4) { continue; } printf("%d\n", i); }` — prints 0,1,2,3,5,6,7,8,9 (skips only 4). [S1]
- Combined in one loop: `for (i = 0; i < 6; i++) { if (i == 2) { continue; } if (i == 4) { break; } printf("%d\n", i); }` — prints 0,1,3 then stops at 4. [S1]
- Real-life skip-negatives-stop-at-zero pattern: `int myNumbers[] = {3, -1, 7, 0, 9}; for (i = 0; i < length; i++) { if (myNumbers[i] < 0) { continue; } if (myNumbers[i] == 0) { break; } printf("%d\n", myNumbers[i]); }` — prints 3 and 7, skips -1, stops entirely at 0 (never reaching 9). [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- **break와 continue의 근본적 차이**: break는 루프를 완전히 종료하지만 continue는 현재 회차만 건너뛰고 루프는 계속된다는 점이 "Good to Remember" 요약으로 명확히 구분됨. [S1]

## 🛠️ 적용 사례 (Applied in summary)
음수는 건너뛰고(continue) 0을 만나면 완전히 멈추는(break) 숫자 리스트 처리 예제가 원문에서 직접 실전 활용 사례로 제시됨. [S1]

## 💻 코드 패턴 (Code patterns)
Combining continue (skip invalid values) and break (stop at a sentinel value) in one loop (C):
```c
int myNumbers[] = {3, -1, 7, 0, 9};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;
for (i = 0; i < length; i++) {
  if (myNumbers[i] < 0) {
    continue; // skip negative numbers
  }
  if (myNumbers[i] == 0) {
    break; // stop loop when zero is found
  }
  printf("%d\n", myNumbers[i]);
}
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.86
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[C Tutorial]]
- **관련 개념:** [[C For Loop RealLife]], [[C Switch]], [[C Arrays]]
- **참조 맥락:** 반복문 섹션 마지막 — 배열(Arrays) 섹션으로 이어짐.

## 📚 출처 (Sources)
- [S1] W3Schools — C Break and Continue — https://www.w3schools.com/c/c_break_continue.php

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "C Break and Continue" page (Astra wiki-curation, P-Reinforce v3.1 format).
