조건문: 두 판 사이의 차이

위키백과, 우리 모두의 백과사전.
내용 삭제됨 내용 추가됨
편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
{{정리 필요|날짜=2008-08-07}}
[[파일:If-Then-Else-diagram.svg|thumb|If 플로 다이어그램.]]
[[파일:If-Then-Else-diagram.svg|thumb|If 플로 다이어그램.]]
[[파일:IF-THEN-ELSE-END flowchart.svg|thumb|If-then-else 플로차트.]]
[[파일:IF-THEN-ELSE-END flowchart.svg|thumb|If-then-else 플로차트.]]
53번째 줄: 52번째 줄:


이 소스는 else if까지 추가시켜서 만든 조건문이다.
이 소스는 else if까지 추가시켜서 만든 조건문이다.

== case와 switch 문 ==
{{본문|Switch 문}}
[[switch 문]] (일부 언어의 경우 case 문이나 다방향 브랜치라고도 함)은 지정된 상수의 값을 비교한 다음, 일치하는 첫 상수에 따라 동작을 취한다.

{| class="wikitable"
|-
! [[파스칼 (프로그래밍 언어)|파스칼]]:
! [[C (프로그래밍 언어)|C]]:
! [[셸 스크립트]:
|-
|<syntaxhighlight lang="pascal">
case someChar of
'a': actionOnA;
'x': actionOnX;
'y','z':actionOnYandZ;
else actionOnNoMatch;
end;
</syntaxhighlight>
|<syntaxhighlight lang="c">
switch (someChar) {
case 'a': actionOnA; break;
case 'x': actionOnX; break;
case 'y':
case 'z': actionOnYandZ; break;
default: actionOnNoMatch;
}
</syntaxhighlight>
|<syntaxhighlight lang="bash">
case $someChar in
a) actionOnA; ;;
x) actionOnX; ;;
[yz]) actionOnYandZ; ;;
*) actionOnNoMatch ;;
esac
</syntaxhighlight>
|}

== 바깥 고리 ==
* {{언어고리|en}} [http://everythingfla.com/courses/video/8/69/ IF NOT (ActionScript 3.0)] video


{{토막글|프로그래밍 언어}}
{{토막글|프로그래밍 언어}}

2016년 11월 27일 (일) 02:48 판

If 플로 다이어그램.
If-then-else 플로차트.

컴퓨터 과학에서 조건문(條件文)이란 프로그래머가 명시한 불린 자료형 조건이 참인지 거짓인지에 따라 달라지는 계산이나 상황을 수행하는 프로그래밍 언어의 특징이다.

C 언어에서의 조건문

C에서는 if를 사용하여 조건문을 만든다. if의 조건이 참이 아닐 때 수행할 동작은 else 문에서 지정 가능하며, if와 else 사이에 else if를 통해 새로운 조건을 넣을 수 있다. C의 영향을 받은 C++, Java 등도 같은 형식을 따른다.

#include <stdio.h>

int main(void){
     int a = 2, c = 5;
     if(a == c){
          printf("a는 c와 같다.");
     }
     else {
          printf("a는 c와 다르다.");
     }
     return 0;
}

이 소스는 a라는 변수에 2를 저장하고 c라는 변수에 5를 저장한 뒤, a와 c가 같은지 확인하고 출력한다. 이 소스는 밑의 소스처럼 좀 더 줄일 수 있다.

#include <stdio.h>

int main(void){
     int a = 2, c = 5;
     a == c ? printf("a는 c와 같다.") : printf("a는 c와 다르다.");
     return 0;
}

위의 소스는 삼항 연산자를 사용해 if를 사용한 소스와 같은 동작을 수행하는 프로그램을 작성한 것이다. 그러나 이 소스는 else if처럼 다른 조건에서 동작하는 지의 여부를 알 수 없다.

#include <stdio.h>

int main(void){
     int a = 2, c = 5;
     if(a > c){
          printf("a는 c보다 크다.");
     } else if(a < c) {
          printf("a는 c보다 작다.");
     } else {
          printf("a는 c와 같다.");
     }
     return 0;
}

이 소스는 else if까지 추가시켜서 만든 조건문이다.

case와 switch 문

switch 문 (일부 언어의 경우 case 문이나 다방향 브랜치라고도 함)은 지정된 상수의 값을 비교한 다음, 일치하는 첫 상수에 따라 동작을 취한다.

파스칼: C: [[셸 스크립트]:
case someChar of
  'a': actionOnA;
  'x': actionOnX;
  'y','z':actionOnYandZ;
  else actionOnNoMatch;
end;
switch (someChar) {
  case 'a': actionOnA; break;
  case 'x': actionOnX; break;
  case 'y':
  case 'z': actionOnYandZ; break;
  default: actionOnNoMatch;
}
case $someChar in 
   a)    actionOnA; ;;
   x)    actionOnX; ;;
   [yz]) actionOnYandZ; ;;
  *)     actionOnNoMatch  ;;
esac

바깥 고리