Sign In
Programming Language

[프로그래밍 언어] 5. Statement-Level Control Structures

Y
Yerim
Category
  1. Programming Language
명령형 언어 프로그램에서 배정문 만으로 모든 유용한 프로그램 작성은 어려움
제어문을 사용해야한다 → 선택문 / 반복문

선택문

프로그램의 두 개 또는 그 이상의 실행 경로 중 선택 가능한 수단을 제공

2방향 선택문

if 제어식 then 절 else 절
if (sum == 0) // 1 if(count = 0) // 2 result=0; else result = 1; // C, Java -> 가장 가까운 if 2 // Python -> 들여쓰기 기준 if 1
제어식: then 예약어 혹은 ()
C89: 산술식이나 제어식
Python, C99: 산술식이나 불리안식
다른 언어: 불리안 식
절형식: 단일 문장 혹은 {복합문} / Python은 들여쓰기 + 콜론
선택자 중첩: else 절이 어느 if와 연관되는가?

다중 선택문

switch(식){ case 상수식1: 문장1; ... case 상수식n: 문장 n; [default: 문장 n+1;] }
switch-case
임의의 개수의 문장들, 문장 그룹 중 한 개의 선택
식과 상수식: 이산타입 → 문자, 정수, 열거 타입
문장: 복합문, 블록 → C언어에서는 break; 필수
선택적 default 세그먼트
C언어의 경우 유연성 높아 이상한 코드 가능
if 조건: 문장 else: if 조건: 문장 => elif else:...
else-if
if-then-else-if문이 가장 일반적
python은 elif를 사용

반복문

0번, 한 번 또는 그 이상의 횟수로 실행하는 것을 야기
몸체: 실행이 반복문에 의해 제어되는 문장 모음
사전 검사: 루프 몸체 실행 전 검사
사후 검사: 루프 몸체 실행 후 검사

for - 계수 counter 기반 반복문

for (식 1 - 루프 초기화; 식 2 - 루프 제어; 식 3 - 루프 계수기 증가) 루프 몸체
루프 변수의 (초기 값, 종료값, 단계 크기 → 루프 매개변수)
계수값이 유지됨
식 1, 2, 3 모두 선택적, 여러 문장 포함 가능
식1은 C99 이후 변수 정의 포함 가능
식2는 산술식, 불리안식 → 항상 참이면 무한 루프
Python은 range()를 사용 → range() 함수의 마지막은 포함되지 ㅇ낳음

while - 논리 logical 기반 반복문

// 사전-검사 논리 제어 루프 while(제어식) 루프 몸체
// 사후검사 논리 제어 루프 do 루프 몸체 while(제어식);
가장 일반적인 방법 (Java는 Boolean 타입이어야 함)

break, continue - 사용자 정의 반복 제어

처음이나 끝이 아닌 곳에서 사용자 지정 탈출 포함
구문적 메커지니즘 제공
continue: 루프를 건너뜀
break: 가까운 루프 탈출
Java는 레이블 있는 탈출 (break) → flag 사용 X

데이터 구조에 기반한 반복

반복 시작 시점에 호출, 한 개의 원소 반환
객체 지향 프로그래밍 → ㅜ추상 데이터타입 사용
Iterable 인터페이스 구현 집합체들에 대해 반복과정 단순화

무조건 분기

goto
실행 흐름 제어에서 가장 강력 → 심각한 문제 초래
프로그램 판독이 어렵고 신뢰성 낮아짐, 유지보수 비용 높아짐
Java, Python 등은 goto를 지원하지 않음
Subscribe to 'Yerim-DevNote'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'Yerim-DevNote'!
Subscribe
👍