본문 바로가기

포너블 멘토링/1주차

연산자와 제어문 (1)

10 - 변수로 연산하기 1

 

산술연산자 : 수학적인 연산. 사칙연산 기호, =, +=, -=, *=, /=, %=, ++, --, %

#include<stdio.h>

int main() {
	int a = 5;
	printf("a는 원래 %d였다...\n", a);
	a = a + 3; // = : 대입 연산자
	printf("3을 더했더니 %d이 됐다...\n", a);
}
#include<stdio.h>

int main() {
	int a = 5;
	
	a += 6; // a = a + 6;
	printf("%d\n", a);
	a *= 7; // a = a * 7;
	printf("%d\n", a);
	a -= 6; // a = a - 6;
	printf("%d\n", a);
	a %= 7; // a = a % 7;
	printf("%d\n\n", a);

	a = 10;

	a++; // a = a + 1;
	       // a += 1;
	printf("%d\n", a);
	a--; // a = a -1;
	     // a -= 1;
	printf("%d\n", a);
}

 

아래 코드는 전치와 후치의 차이점을 보여준다.

#include<stdio.h>

int main() {
	int a = 10;
	int b;
	
	printf("=== 전치 증가 연산 ===\n");
	b = ++a;
	printf("a : %d\n", a);
	printf("b : %d\n", b);
	// a를 먼저 1 증가시키고 b에 대입하라는 의미.

	printf("=== 후치 증가 연산 ===\n");
	b = a++;
	printf("a : %d\n", a);
	printf("b : %d\n", b);
	// a를 먼저 b에 대입한 후, a를 1 증가.
}

 

11 - 변수로 연산하기 2

 

비교연산자와 논리연산자.

#include<stdio.h>

int main() {
	int a, b;
	scanf_s("%d%d", &a, &b);

	// bool : 진리값 저장용 변수(1바이트)
	int p = a > b; // bool p = a > b;
	int q = a < b; // bool q = a < b;
	int r = a == b; // bool r = a == b;
	//참 : 1
	//거짓 : 0

	// a >= b : a는 b보다 크거나 같다.
   	// a <= b : a는 b보다 작거나 같다.
	// a != b : a와 b는 다르다.

	printf("%d\n", p);
	printf("%d\n", q);
	printf("%d\n", r);
}

== : 같다

= : 오른쪽 값을 왼쪽에 대입

#include<stdio.h>

int main() {
	//논리연산자 : 그리고, 또는 등등...
	// &&  ||  !

	int a;
	scanf_s("%d", &a);

	bool p = (a >= 1) && (a <= 10);
	bool q = (a == 3) || (a == 7);
	bool r = !q;

	printf("%d\n", p);
	printf("%d\n", q);
	printf("%d\n", r);
}

&& : AND 연산

|| : OR 연산

! : 부정연산(1은 0으로, 0은 1로)

 

 

12 - 경우 나누기

#include<stdio.h>

int main() {
	int n;
	scanf_s("%d", &n);

	if (n % 2 == 0) { //소괄호 안의 조건이 참이라면 실행. 거짓이라면 실행 안함.
		printf("n은 짝수\n");
	}
	else { // 조건이 만족되지 않으면 실행.
		printf("n은 홀수\n");
	}

	if (1) { // 사실, 조건은 0이면 거짓이고 나머지 모든 숫자에 대해선 참임.
		printf("***\n");
	}
	else {
		printf("###\n");
	}
}

첫번째 조건문에서 조건의 == 0 을 빼면, 아래의 설명을 따라 결과가 반대로 나온다.

 

#include<stdio.h>

int main() {
	int n;
	scanf_s("%d", &n);

	if (n > 0) {
		printf("n은 양수\n");
	}
	else if (n == 0) {
		printf("n은 0\n");
	}
	else {
		printf("n은 음수\n");
	}
}

 if, else if else.

else if 는 더 여러번 중첩해서 쓸 수 있음.

단, 중간에 조건을 만족해 해당하는 구문을 실행하면 전체 조건문을 빠져나옴.

--> if를 여러번 쓰는거보다 시간이 절약될 수 있다.

 

 

13 - if 문 잘쓰기

 

중첩 if 문. 중괄호 코딩 스타일.

#include<stdio.h>

int main() {
	int a, b, c;
	scanf_s("%d%d%d", &a, &b, &c);

	if (a > b) {
		// a > b > c
		// a > c > b
		// c > a > b
		if (a > c) {
			printf("%d\n", a);
		}
		else {
			printf("%d\n", c);
		}
	}
	else { // b > a 인 경우.
		if (b > c) {
		printf("%d\n", b);
	}
		else {
		printf("%d\n", c);
		}
	}
}

세 숫자를 입력해서 그 중 최댓값을 찾는 코드 중 하나.

조건문의 구문이 한 줄이면 중괄호 생략 가능.

'포너블 멘토링 > 1주차' 카테고리의 다른 글

연산자와 제어문 (3)  (0) 2020.03.26
연산자와 제어문 (2)  (0) 2020.03.26
입출력과 변수 (3)  (0) 2020.03.26
입출력과 변수 (2)  (0) 2020.03.26
입출력과 변수 (1)  (0) 2020.03.26