9a135bd19d
최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치. 콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서 전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한 업데이트0615/무제 3.canvas 뿐).
4.0 KiB
4.0 KiB
id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
| id | title | category | status | verification_status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | created_at | updated_at | review_reason | merge_history | tags | raw_sources | applied_in | github_commit | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| c-switch | C Switch | Programming_Language | draft | conceptual |
|
B | 0.86 | 2026-07-04 | 2026-07-04 |
|
|
C Switch
🎯 한 줄 통찰 (One-line insight)
break isn't optional cleanup — without it, C would keep executing every subsequent case block regardless of whether it matches, since switch on its own only decides WHERE to jump in, not where to stop; the source frames break as actively saving execution time by "ignoring" the rest of the switch block once a match is handled, implying that omitting it (fall-through) is a real and easy-to-make mistake in C, unlike languages where each case implicitly breaks. [S1]
🧠 핵심 개념 (Core concepts)
switch (expression)— evaluates the expression ONCE, then compares it against eachcasevalue to find a match. [S1]case x:— a candidate value to match against; its code block runs if the switch expression equalsx. [S1]break— exits the switch block immediately once a matching case has been handled, preventing execution from continuing into subsequent cases. [S1]default:— optional; runs if no case matches; must be the LAST statement in the switch and does not need its ownbreak. [S1]
📖 세부 내용 (Details)
- Weekday-name lookup via switch:
int day = 4; switch (day) { case 1: printf("Monday"); break; ... case 4: printf("Thursday"); break; ... }— outputs "Thursday" for day 4. [S1] - Using default for unmatched cases:
int day = 4; switch (day) { case 6: printf("Today is Saturday"); break; case 7: printf("Today is Sunday"); break; default: printf("Looking forward to the Weekend"); }— day 4 matches neither case 6 nor 7, so default runs. [S1]
⚖️ 모순 및 업데이트 (Contradictions & updates)
- break 생략 시 다음 case로 계속 진행됨: switch는 일치하는 case를 찾아 진입점만 결정할 뿐, break가 없으면 이후 모든 case의 코드가 계속 실행된다는 점(fall-through)이 암묵적으로 경고됨. [S1]
- default는 반드시 마지막에 위치: default 키워드는 switch 블록의 마지막 statement여야 하며 break가 필요 없다는 점이 명시적으로 확인됨. [S1]
🛠️ 적용 사례 (Applied in summary)
요일 번호(1-7)를 요일 이름으로 변환하는 예제와, 주말이 아닌 요일에 대해 default로 "주말이 기대된다"는 메시지를 출력하는 예제가 원문에서 직접 실전 활용 사례로 제시됨. [S1]
💻 코드 패턴 (Code patterns)
Using default to handle any value not matched by an explicit case (C):
int day = 4;
switch (day) {
case 6:
printf("Today is Saturday");
break;
case 7:
printf("Today is Sunday");
break;
default:
printf("Looking forward to the Weekend");
}
// Outputs "Looking forward to the Weekend"
✅ 검증 상태 및 신뢰도
- 상태: draft
- 검증 단계: conceptual
- 출처 신뢰도: B (W3Schools — widely used educational reference, not a primary standards body)
- 신뢰 점수: 0.86
- 중복 검사 결과: 신규 생성 (New discovery)
🔗 지식 그래프 (Knowledge Graph)
- 상위/루트: C Tutorial
- 관련 개념: C Conditions RealLife, C While Loop
- 참조 맥락: switch 섹션 유일 챕터 — 반복문(Loops) 섹션의 while 루프(While Loop) 챕터로 이어짐.
📚 출처 (Sources)
- [S1] W3Schools — C Switch — https://www.w3schools.com/c/c_switch.php
📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "C Switch" page (Astra wiki-curation, P-Reinforce v3.1 format).