본문 바로가기

C언어/강의

2010년 10월 06일 수요일 ( 논리연산자 & scanf() 함수 & if() 명령문 )

논리연산자
 연산자 의미  수식 예  수식의   의미 
 && AND a  && b  a와 b가 모두 참이면 참이된다. 
 || OR a || b  a와 b중 어느 한쪽이 참이면 참이된다.  
 ! NOT !a  a가 참이면 거짓, a가 거짓이면 참이 된다. 

#include <stdio.h>

int main()
{
  int A=10;
  3||(A=5);            // OR 논리연산
  printf("%d", A);
  return 0;
}
위의 프로그램을 실행을 하면 출력된 값은 10이 출력된다. 이유는 OR논리연산에 의하여
3이 이미 참이 나왔으므로 뒤의 명령은 실행하지 않고 넘어간다.
만약 
(A=5)||3; 이라고 하면 출력값은 5로 출력이된다.


증감 연산자
b=++a; ☜ 전치형 a=a+1; b=a; 와 같은식
b=a++; ☜ 후치형 b=a; a=a+1; 와 같은식

부가, 복합부가 연산자
a += 5; ☜ 복합부가 연산 a=a+5; 와 같은식

= ☜ 형(type) 동등성을 갖는다. (char, short, int 같은 형)

캐스트 연산자
#include <stdio.h>

int main()
{
  float A;
  A=7/(float)6;
  printf("%f", A);
  return 0;
}
위의 프로그램을 실행하면 출력값은 1.166667을 출력한다. 
A=7/6;을 입력할경우는 출력값은 1.000000을 출력한다. 


scanf() 함수

#include <stdio.h>

int main()
{

  char A;
  scanf("%c"&A);
  printf("%d\n", A);
  return 0;

}
위의 프로그램을 실행하면 출력값은 57이 나온다. 풀이해보면 입력받는값은 문자로받고, 출력은 정수로 표현한다고 되어있다. 즉, 문자 9는 아스키코드값이 57이므로 출력값이 57로 나오는 것이다. 


if 명령문

if 문은 조건이 참이면 실행하고 거짓이면 실행하지않는다. 아래의 예를 보자.
#include <stdio.h>

int main()
{
  int A=10, B=0;      // 정수형 A에 10, B에 0 값을 넣어라.
  if(A < 12)          // 조건 : A가 12보다 작다.
  {
    B = 1;            // 실행 : B에 1을 넣어라.
  }
  printf("%d\n", B);  // 결과 : B의 값을 출력하라.
  return 0;          // 완료
}
위의 프로그램을 실행하면 출력값은 1이 나온다. 조건문에서 A의 값이 12보다 작으면 참이라고 되어있기 때문에 
= 1; 을 실행하여 B값을 출력한다. 반대로 A의 값을 15(12보다큰수)로 넣을 경우 조건이 맞지 않기때문에 거짓이 되어 = 1;은 실행하지 않기때문에 출력값은 0이 나온다.