TIL C언어 입문2

김지수·2022년 10월 22일
0

SW사관학교정글5기

목록 보기
4/13

1. 기본 연산자

증감 연산자

  • ++ 증가 연산자 : 변수가 가지고 있는 값을 1 증가
  • -- 감소 연산자 : 변수가 가지고 있는 값을 1 감소
  • 덧셈 연산자 (이항 연산자)
int a = 5;
a = a + 1
/* a값에 1을 더하고 다시 a에 대입 */
  • 증가 연산자 (단항 연산자)
int a = 5;
a++;
/* a값에 1 증가시킴. */

!!!

  • 덧셈 연산자는 이항 연산자, 두 개의 메모리가 연산에 사용됨 (ADD 명령어)
  • 증가 연산자는 단항 연산자, 한 개의 메모리가 연산에 사용됨 (INC 명령어)
  • 단항 연산자의 연산 속도가 더 빠르다

증감 연산자 전위형 후위형

  • 증감 연산자는 변수의 앞 뒤에 사용가능
  • 함꼐 연산을 하는 다른 연산자가 있는 경우 결과 값이 달라질 수 있음
  • 후위형(Postfix) : 연산하고 난 뒤 값을 증감 i++ / i--
  • 전위형(Prefix) : 값을 먼저 증감한 뒤 연사 ++i / --i
/* 전위형 */
int a = 5, sum;
sum = ++ a;
// a 값이 6으로 증가한 뒤 sum에 대입 //

/* 후위형 */
int a = 5, sum;
sum = a++;
// a 값이 sum에 대입 된 후 a가 6으로 증가 //

2. switch 조건문

if문이 비효율적인 경우

  • C언어에서는 모든 조건문을 if문으로 표현가능
  • 정해진 상수를 여러 번 비교하는 경우 if~ else if ~ else문 보다 switch 문이 효율적
int score = 85;
char grade;

if(score >= 90) grade ='A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';

print("점수 : %d, 등급 : %c", score, grade)

switch 조건문의 기본 구조

  • 상수와 직접적으로 비교하는 조건 형시겡 유리한 문법 구조
  • 수식을 처리하여 얻은 결과 값을 각 case문에 있는 상수 값과 비교하여 명령문 수행
  • 비교 대상이 상수가 아닌 변수일 경우 사용 불가
int score = 85;
char grade;

switch(score / 10)
{
	case 10:		/* 100점 */
    case 9:
    	grade = 'A'
        break;
    case 8:
    	grade = 'B'
        break;
    case 7:
    	grade = 'C'
        break;
    case 6:
   		grade = 'D'
        break;
    default:
    	grade = 'F'
        btreak;
}
printf("점수: %d, 등급 : %c", score, grade);

!!!

  • 보편적으로 if문을 많이 사용한다
  • 하지만, switch 문이 연산이 더 적고 간결한 형식으로 나열되어 더 좋은 기계어 코드로 번역된다

3. 반복문

반복문

  • 반복문이랑 지정한 작업을 반복해서 수행하는 문법
  • 반복문에 필요한 세 가지 요소 -> 시작 조건, 조건 변화 수식, 종결 조건

for 반복문의 기본 구조

  • for 반복문은 반복의 3요소가 제일 단순하고 정확하게 표현한 반복문
  • 반복문 중 가장 많이 사용되며 시작과 끝이 명확한 반복문에 많이 사용됨

for( 시작조건 ; 종결 조건 ; 조건변화수식) 명령문;

void main(){    // 1 ~ 5 까지 더하는 함수
    int sum = 0, num;
    for( num = 1; num <=5; num++){
        sum += num;
    }
    printf("1~5까지 더한 수는 %d 입니다\n", sum);
}

while 반복문

  • while 문은 명령문을 반복하는 문법
  • '종결 조건'만 형식으로 가지고 '시작 조건'과 '조건 변화 수식'은 프로그래머가 적절하게 사용할 수 있는 문법

while(동작 조건) 명령문;

void main()
{
	int sum = 0;
    int num = 1;		// 시작 조건
    while(num <=5){		// 동작 조건
    	sum += num;
        num++;			// 조건 변화 수식
    }
}

do ~ while 반복문

  • while 문과 유사하지만 '동작 조건'을 명령문으로 수행한 후에 체크

  • '동작 조건'이 거짓인 상황에도 명령문을 적어도 한 번은 수행

    do 명령문; while(동작 조건);
    do{
    명령문;
    명령문;
    } while(동작 조건);

  • 위의 경우 동작 조건에 맞지 않더라도 do에 있는 것을 한번 실행한다


#include <stdio.h>

void main(){
    int sum = 0, num =1;
    do{
        sum += num;
        num++;
    }while(num<=5);
    printf("%d\n", sum);
}

0개의 댓글