Chapter 5
1. 연산자, 표현식, 문장
*** 루프
- 루프를 쓰지 않는 코드
/* 사이즈 단위를 인치 단위로 변환한다.*/
#include <stdio.h>
#define ADJUST 7.31 // 전처리기 상수를 선언
int main(void)
{
const double SCALE = 0.333; // double형 상수 선언
double shoe, foot;
shoe = 9.0;
foot = SCALE * shoe + ADJUST;
printf("Shoe size (men's) foot length\n");
printf("%10.1f %15.2f 인치\n", shoe, foot);
return 0;
}
- 루프를 사용한 코드
/* 여러 개의 신발 사이즈를 인치 단위로 계산한다. */
#include <stdio.h>
#define ADJUST 7.31
int main(void)
{
const double SCALE = 0.333;
double shoe, foot;
printf("신발 사이즈(남자용) 발길이\n");
shoe = 3.0; /* shoe변수에 3.0이라고 초기화값을 대입한다. */
while (shoe < 18.5) /* while 루프의 시작 */
{ /* 블록의 시작 */
foot = SCALE * shoe + ADJUST; /* 0.333 * shoe + 7.31 값을 foot에 대입한다.*/
printf("%10.1f %15.2f 인치\n", shoe, foot);
shoe = shoe + 1.0; /* shoe변수에 shoe + 0.1만큼 증가시킨 값을 대입한다.*/
} /* 블록의 끝 */
printf("그 신발이 발에 맞는다면, 그것을 신으세요.\n");
return 0;
}
** 용어의 정의 : 데이터 객체, 좌변값, 우변값, 피연산자 (대충 알고만 넘어가자...)\
- 데이터 객체 (Data Object) : 값을 저장하는데 사용할 수 있는 데이터 저장 영역 뜻한다.
- 좌변값 (1Value) : C는 하나의 특정 데이터 객체를 구별하는 이름이나 표현식을 지칭할때 좌변값 이라는 용어를 사용한다. 즉, 변수의 이름은 하나의 좌변값이다.
- 우변값(rValue) : 변경할 수 있는 좌변값에 대입할 수 있는 수량을 지칭한다.
ex.) bmw = 2002; / bmw => 좌변값, 2002 => 우변값
- 피연산자(Operand) : 피연산자는 연산자가 연산을 적용하는 대상이다.
ex.) "햄버거를 먹는다." / 피연산자 => 햄버거, 연산자 => 먹는다.
*** 삼중 대입
- 대입은 오른쪽에서 왼쪽으로 차례대로 이루어진다.
#include <stdio.h>
int main(void)
{
int jane, tarzan, cheeta;
cheeta = tarzan = jane = 68;
printf(" 치타 타잔 제인\n");
printf("1라운드 점수 %4d %8d %8d\n",cheeta,tarzan,jane);
return 0;
}
*** 제곱 연산자
- C는 제곱연산자를 제공하지 않는다. 그러나 곱셈 연산자를 사용하여 제곱표를 만들 수 있다.
/* 처음 20까지의 제곱표를 만든다.*/
#include <stdio.h>
int main(void)
{
int num = 1;
while (num < 21)
{
printf("%4d %6d\n", num, num * num);
num = num + 1;
}
return 0;
}
*** 나머지 연산자 : %
// 초 수로 주어지는 시간을 분과 초로 변환한다.
#include <stdio.h>
#define SEC_PER_MIN 60 // 1분은 60초
int main(void)
{
int sec, min, left;
printf("초 수로 주어지는 시간을 분과 초로 변환합니다!\n");
printf("초 수를 입력하시오.( <= 0이면 끝):\n");
scanf("%d", &sec); // 초 수를 읽는다.
while (sec > 0)
{
min = sec / SEC_PER_MIN; // 나머지를 버린 분 수
left = sec % SEC_PER_MIN; // 나머지 초 수
printf("%d 초는 %d 분, %d 초입니다.\n", sec,
min, left);
printf("다음 초 수를 입력하시오.( <= 0이면 끝):\n");
scanf("%d", &sec);
}
printf("끝!\n");
return 0;
}
- while 문 루프에서 사용자가 0이나 음수를 입력하면 루프가 끝난다.
2. 증가 연산자와 감소연산자 : ++와 --
*** 전위 ++a 표기 / 후위 a++표기
1. 전위 표기법 (prefix)
- 연산자를 먼저 표시하고 연산에 필요한 피연산자를 나중에 표기하는 기법이다.
(ex. +AB)
2. 후위 표기법 (postfix)
- 피연산자를 먼저 표시하고 연산자를 나중에 표시하는 기법이다.
즉, 컴파일러가 사용하는 방식이다.
- 세미콜론 끝나고 실행!!!
(ex. AB+)
3. 중위 표기법 (infix)
- 연산자를 두 피연산자 사이에 표기하는 방법으로 가장 일반적으로 사용되는 표현방법이다.
즉, 이항 연산자 표현이 적합하다.
(ex. A+B)
/* 전위 모드와 후위 모드 */
#include <stdio.h>
int main(void)
{
int ultra = 0, super = 0;
while (super < 5)
{
super++; // super = super + 1; 전위 모드
++ultra; // ultra = ultra + 1; 후위 모드
printf("super = %d, ultra = %d \n", super, ultra);
}
return 0;
}
- 전위(앞쪽)에 사용된 경우는 계산이 수행되기 전에 먼저 실행되지만, 후위(뒤쪽)에 사용된 경우에는 계산을 수행한 후 실행됩니다.
- 증감 연산자 ++a는 변수의 값을 1씩 증가시킨 연산자
- 감소 연산자 --a는 변수의 값을 1씩 감소시킨 연산자
3. 표현식 과 문장 (개념 알고 가자!!!)
*** 표현식(Expression)
- 연산자와 피연산자의 조합으로 구성된다. 가장 간단한 표현식은 하나의 피연산자다.
* 피연산자 : 연산자가 작용하는 대상이라는것 ex.) 햄버거를 먹는다. "햄버거" -> 피연산자
ex.)
- 위의 예에서 볼 수 있듯이 상수, 변수 또는 이들의 조합이 피연산자가 될 수 있다.
*** 문장(Statement)
- 프로그램을 구성하는 기본 요소이다. 하나의 문장은 컴퓨터에게 내리는 하나의 완전한 지시다.
- 문장들 끝에 세미콜론(;)을 붙여서 나타낸다.
- 단일문, 복합문이 있다. 단일문은 ;(세미콜론)으로 끝난경우 , 복합문은 ( { } ) 블록으로 묶여진 문장들로 이루어진다.
ex.)
Legs = 4 (표현식)
Legs = 4; (문장)
; (Null 문장) : 아무것도 하지 않는 명령의 특별한 경우이다.
/* 다섯가지 문장 */
#include <stdio.h>
int main(void) /* 처음 20까지 정수들의 합을 구한다. */
{
int count, sum; /* 선언문 */
count = 0; /* 초기값 대입문 */
sum = 0; /* 초기값 대입문 */
while (count++ < 20) /* while 루프문 */
sum = sum + count; /* 문장(while문) 실행 */
printf("sum = %d\n", sum);/* printf() 함수문 */
return 0; /* return 문 */
}
** 선언문 (Declaration Statement) : 변수의 이름과 데이터 형을 설정하여 변수들을 위한 기억 공간을 할당한다.
** 대입문 (Assignment Statement) : 변수에 어떤값을 대입한다.
** 함수문 (Function Statement) : 어떤 기능을 수행하도록 지시한다. printf()함수에게 어떤 결과를 출력하라고 지시한다.
'LAB > C' 카테고리의 다른 글
[24.08.08] c언어의 기초6 (1) | 2024.08.08 |
---|---|
[24.08.08] c언어의 기초5(2) (0) | 2024.08.08 |
[24.08.08] c언어의 기초5(1) (0) | 2024.08.08 |
[24.08.07] C언어의 기초3 (0) | 2024.08.07 |
[24.08.06] C언어의 기초2 (0) | 2024.08.07 |