본문 바로가기

C언어/강의

2010년 10월 08일 금요일 ( switch 명령문 & getchar()/putchar() 문 & while() 명령문 )


switch 문
switch (score)
{
case 10 :                  // 정수 10이 올 경우
grade='A';
break;          // switch 문 종료
case 9 :                   // 정수 9가 올 경우
grade='B';
break;
     ↓
     ↓
default :                     // 해당사항 없을 경우
grade='F';
break;
}     
스위치문에는 논리식을 쓸수 없다. 경우가 많을 경우에 if문보다 유용하다.
score 값이 10이면 10으로 점프 grade='A';실행하고 종료 9면 9로 점프 해당사항이없다면 default로 간다.

getchar / putchar 문
#include <stdio.h>

int main ()
{
  char ch;

  printf("Please enter any character: ");
  ch=getchar();  // 문자입력 (1byte)
  putchar(ch);   // 문자출력

  printf(" is a letter you typed.\n");
  fflush(stdin); // 버퍼에 입력된 엔터키를 삭제 (리눅스에서는 안됨)
  printf("Please enter any character: ");
  scanf("%c"&ch);
  printf("%c is a letter you typed.\n", ch);
  
  return 0;
}

fflush(stdin);은 윈도우에서는 되지만 리눅스에서는 안된다. 리눅스에서는 getchar();를
대신 써주면 된다.
getchar()함수는 버퍼를 통해 입력을 받는다.(ANSI C 표준)
getche()함수는 버퍼를 통하지 않고 입력을 받는다. (윈도우 o 리눅스 x)
getch()함수는 getche함수와 같으나 입력값을 화면에는 표시해주지 않는다. 
(윈도우 o 리눅스 x)

while(논리식) 명령문 
#include <stdio.h>

int main ()
{
  int num;
  
  num=0;          // 제어변수 n의 초기화
  while(num<=5)      // 반복여부를 결정하는 논리식(참이면 {}안 계속 반복 실행.)
  {
    printf("%d\t", num);
    num=num+1;      // 제어변수의 값의 변경
  }
  printf("\n");
  return 0;
  
}
반복 제어문으로써 논리식이 참인동안 {}안의 프로그램을 계속해서 반복한다. 거짓일경우 빠져나옴
변수 num의 값이 5보다 클때까지 계속 {}를 실행함.
프로그램 실행시 출력값은 0  1  2  3  4  5 가 나온다.