연산자란 정적인 데이터들을 유기적으로 행동하게 하여, 새로운 가치를 창출해낸다.
대입 연산자는 오른쪽에 있는 값을 왼쪽에 대입한다.
대입 연산자와 산술 연산자를 혼용해서 사용하기도 한다.
증감 연산자는 증가,감소 연산자의 줄임말이다.
ex) a++, ++a, a--, --a
++과 --의 위치에 따라 의미가 달라지는데, ++,--가 앞에있으면 증감 시킨후 연산을 진행하고, 뒤에 있으면 연산을 진행한 후 증감시킨다.
#include <stdio.h>
int main()
#include <stdio.h>
int main()
{
int a=5;
int b=10;
printf("%d\n", ++a);
printf("%d\n", a++);
printf("%d\n", b--);
printf("%d\n", --b);
return 0;
}
출력
6
6
10
8
관계 연산자는 두 개의 피연사자들의 관계를 비교하여 참이면 true(1), 거짓이면 false(0)를 반환한다.
! : 피 연산자의 결과를 반대로 만든다
&& : and연산자로, 두 피 연산자가 모두 참이면 true 그 외에는 모두 false를 반환한다
|| : or연산자로, 두 피 연산자가 모두 거짓이면 false 그 외에는 모두 true를 반환한다
연습문제
#include <stdio.h>
int main()
{
int num1;
int num2;
int num3;
printf("세 개의 정수를 입력하세요 : ");
scanf("%d %d %d", &num1, &num2, &num3);
printf("세 수의 곱은 %d입니다.",num1*num2*num3);
return 0;
}
출력
세 개의 정수를 입력하세요 : 2 3 4
세 수의 곱은 24입니다.
#include <stdio.h>
int main()
{
int num1;
int num2;
int num3;
printf("세 개의 정수를 입력하세요 : ");
scanf("%d %d %d", &num1, &num2, &num3);
printf("세 수의 합은 %d, 평균은 %d 입니다.",num1+num2+num3,(num1+num2+num3)/3);
return 0;
}
분기문이란 조건에 따라 실행 하거나, 실행시키지 않게 한다
if(내용1) {
내용1이 true(1)일 때, 실행할 코드
}
if(내용2) {
내용2가 true(1)일 때, 실행할 코드
}
if(내용3) {
내용3이 true(1)일 때, 실행할 코드
}
다음 코드에서 내용이 true(1)이면 안의 코드를 실행시키고, false(0)이면 실행시키지 않는다.
if문만을 연속해서 사용하면, false일때의 실행하고 싶은 코드를 실행할 수 없다.
if(내용) {
if의 내용이 true(1)일 떄, 실행할 코드
} else{
if의 내용이 false(0)일 때, 실행할 코드
}
연습문제
#include <stdio.h>
int main()
{
int number;
printf("정수를 입력하세요 : ");
scanf("%d", &number);
if(number%2==0){
printf("입력한 수는 짝수입니다.");
} else {
printf("입력한 수는 홀수입니다.");
}
return 0;
}
출력(홀수일 때)
정수를 입력하세요 : 5
입력한 수는 홀수입니다.
출력(짝수일 때)
정수를 입력하세요 : 4
입력한 수는 짝수입니다.
#include <stdio.h>
int main()
{
int num1;
int num2;
int num3;
printf("세 개의 정수를 입력하세요 : ");
scanf("%d %d %d", &num1, &num2, &num3);
if(num1 <= num2 && num1 <= num3){
min = num1;
}
else if(num2 <= num1 && num2 <= num3){
min = num2;
}
else {
min = num3;
}
printf("최소값은 %d 입니다.", min);
return 0;
}
출력
세 개의 정수를 입력하세요 : 1 2 3
최소값은 1 입니다.
if문만을 연속해서 사용하면, 불필요한 연산을 계속하게 된다. 이를 해결하기 위해 if-else if문을 사용한다.
if(내용) {
if의 내용1이 true(1)일 떄, 실행할 코드
} else if(내용2) {
if의 내용1이 false(0)이고, 내용2가 true(1)일 때, 실행할 코드
} else {
내용1,2가 모두 거짓일 때 실행할 코드.
}
연습문제
#include <stdio.h>
int main()
{
int score;
printf("점수를 입력하세요 : ");
scanf("%d", &score);
if(score >= 60){
printf("합격입니다.");
} else {
printf("불합격입니다.");
}
return 0;
}
#include <stdio.h>
int main()
{
int age;
printf("나이를 입력하세요 : ");
scanf("%d", &age);
if(age <13){
printf("어린이입니다.");
} else if(age >= 13 && age < 19){
printf("청소년입니다.");
} else {
printf("성인입니다.");
}
return 0;
}
#include <stdio.h>
int main()
{
char c;
printf("정말로 이 드라이브를 포멧하시겠습니까?(y/n) ");
scanf("%c", &c);
if(c =='y') {
printf("네, 드라이브를 포멧하겠습니다.");
} else if(c=='n') {
printf("아니오, 드라이브를 포멧하지 않겠습니다.");
}
return 0;
}
#include <stdio.h>
int main()
{
int score;
char grade;
printf("점수를 입력해주세요 : ");
scanf("%d", &score);
if(score > 90){
grade = 'A';
} else if(score <= 90 && score > 80){
grade = 'B';
} else if(score <= 80 && score > 70){
grade = 'C';
} else if(score <= 70 && score > 60){
grade = 'D';
} else {
grade = 'F';
}
printf("학점은 %c입니다.", grade);
return 0;
}
while(반복 조건) {
반복 문장
}
반복 조건을 만족하는 동안 반복 문장을 반복하여 수행하고, 만족하지 않게 되면 while문을 빠져 나간다.
연습문제
#include <stdio.h>
int main()
{
int number;
int i = 1;
printf("숫자를 입력하시오 : ");
scanf("%d", &number);
while(i < 10){
printf("%d * %d = %d\n", number, i, number*i);
i++;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 10){
printf("%d\n",i);
i++;
}
return 0;
}
#include <stdio.h>
int main()
{
int number;
int i = 1;
printf("숫자를 입력하시오 : ");
scanf("%d", &number);
while(i <= number){
printf("%d\n",i);
i++;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 100){
printf("충전: %d\n",i);
i++;
}
printf("충전이 완료되었습니다.");
return 0;
}
while문을 중첩해서 사용하는 구조이다.
while(조건1) {
조건 1동안 반복할 반복문
while(조건2) {
조건2동안 반복할 반복문
}
}
연습문제
1. 다음과 같이 출력하도록 프로그램을 작성하되 반드시 이중 while문을 사용하여 작성하여보자.
*
**
***
****
*****
```C
#include <stdio.h>
int main()
{
int i = 1;
int j = 1;
while(i <= 5){
j=1;
while(j <= i){
printf("*");
j++;
}
printf("\n");
i++;
}
return 0;
}
무한루프 반복문이란, 반복 수행이 무한하게 반복되는 반복문이다.
반복 조건이 어느순간 무너질 수 있도록, break나 return으로 빠져 나올수 있게 설계해야한다.
for문은 조건식에 while문과는 다르게, 변수의 초기화 연산과 증감 연산이 추가된다.
for(초기문; 조건문; 증감문)
{
반복 내용
}