220822 C언어#4, 앱인벤터#5

김혜진·2022년 8월 22일
0

C언어

목록 보기
4/13

C언어 #4

if~else문

이것 아니면 저것

else문은 '그 밖의'라는 의미를 가지고 있다.
else문을 추가함으로써 이것만의 선택이 아니라 저것도 선택 가능하다.

  • if~else문의 기본 원리
if (수행조건) {
	수행 조건 만족 시 수행
}
else {
	수행 조건 불만족 시 수행
}

이것 아니면 저것의 양자 택일 형태이다.

#include<stdio.h>

int main(void) {
	int a = 0;

	printf("정수를 입력하세요: ");
	scanf_s("%d", &a);

	if (a > 5) {
		printf("입력값은 5보다 큽니다.\n");
	}
	else {
		printf("입력값은 5보다 크지 않습니다\n");
	}
    
   	return 0;
}

출력결과
(3 입력 시)
정수를 입력하세요: 3
입력값은 5보다 크지 않습니다.

(6 입력 시)
정수를 입력하세요: 6
입력값은 5보다 큽니다.

● 하나의 정수를 입력받아 짝수와 홀수를 구분하여 출력하기

#include<stdio.h>

int main(void) {
	int a = 0;

	printf("정수를 입력하세요: ");
	scanf_s("%d", &a);

	if (a % 2 == 0) {
		printf("입력한 수는 짝수입니다.\n");
	}
	else {
		printf("입력한 수는 홀수입니다.\n");
	}

	return 0;
}

출력결과
(4 입력 시)
정수를 입력하세요: 4
입력한 수는 짝수입니다.

(3 입력 시)
정수를 입력하세요: 3
입력한 수는 홀수입니다.

● 두 개의 정수를 입력받고 두 수를 비교하여 큰 수출력하기

#include<stdio.h>

int main(void) {
	int a = 0;
	int b = 0;

	printf("두 개의 정수를 입력하세요: ");
	scanf_s("%d%d", &a, &b);

	if (a > b) {
		printf("큰 수는 : %d\n", a);
	}
	else {
		printf("큰 수는 : %d\n", b);
	}

	return 0;
}

출력결과
(120, 60 입력 시)
두 개의 정수를 입력하세요: 120 60
큰 수는 : 120

● 세 개의 정수를 입력받고 비교하여 그 중 가장 작은 최소값을 출력하기

#include<stdio.h>

int main(void) {
	int a = 0;
	int b = 0;
	int c = 0;

	printf("세 개의 정수를 입력하세요: ");
	scanf_s("%d%d%d", &a, &b, &c);

	if (a < b && a < c) {
		printf("최소값은 : %d\n", a);
	}
	if (b < a && b < c) {
		printf("최소값은 : %d\n", b);
	}
	if (c < a && c < b) {
		printf("최소값은 : %d\n", c);
	}

	return 0;
}

출력결과
(1, 2, 3 입력 시)
세 개의 정수를 입력하세요: 1 2 3
최소값은 : 1


if~else if~else문

이것 아니면 저것 아니면 요것 기타 등등..

인생을 살면서 선택에 있어 양자택일만 있는 것이 아니다.
else if문을 사용하면 조건 자체가 계속 늘어날 수 있다.

  • if~else if~else문의 기본 원리
if (수행 조건 1) {
	수행 조건1 만족 시 수행
}
else if (수행 조건 2) {
	수행 조건2 만족 시 수행
}
else {
	수행 조건1, 수행조건2 불만족 시 수행
}
#include<stdio.h>

int main(void) {
	int a;

	printf("정수를 입력하세요: ");
	scanf_s("%d", &a);

	if (a > 5) {
		printf("입력 값은 5보다 큽니다.\n");
	}
	else if (a < 5) {
		printf("입력 값은 5보다 작습니다.\n");
	}
	else {
		printf("입력 값은 5와 같습니다.\n");
			}

	return 0;
}

출력결과
(5 입력 시)
정수를 입력하세요: 5
입력 값은 5와 같습니다.

● 정수를 입력받아 60이상이면 "합격입니다", 60미만이면 "불합격입니다" 출력하기

#include<stdio.h>

int main(void) {
	int a = 0;

	printf("점수를 입력하세요: ");
	scanf_s("%d", &a);

	if (a >= 60) {
		printf("합격입니다.\n");
	}
	else {
		printf("불합격입니다.\n");
	}

	return 0;
}

출력결과
(60 입력 시)
점수를 입력하세요: 60
합격입니다.

● 합격자 중에 90점 이상이면 추가로 "장학대상입니다." 출력하기

#include<stdio.h>

int main(void) {
	int a = 0;

	printf("점수를 입력하세요: ");
	scanf_s("%d", &a);

	if (a >= 60 && a <= 100) {
		printf("합격입니다.\n");
		
		if (a >= 90) {
			printf("장학대상입니다.\n");
		}
	}
	else if (a < 60 && a >= 0) {
		printf("불합격입니다.\n");
	}
	else {
		printf("유효하지 않습니다.\n");
	}

	return 0;
}

출력결과
(90 입력 시)
점수를 입력하세요: 90
합격입니다.
장학대상입니다.

❗ 명확한 로직을 위해 점수의 범위 정해주기

● 정수를 입력받아 13미만이면 "어린이입니다.", 13이상 19미만이면 "청소년입니다.", 19세 이상이면 "성인입니다." 출력하기

#include<stdio.h>

int main(void) {
	int a = 0;

	printf("나이를 입력하세요: ");
	scanf_s("%d", &a);

	if (1 <= a && a < 13) {
		printf("어린이입니다.\n");
	}
	else if (a >= 13 && a < 19) {
		printf("청소년입니다.\n");
	}
	else if (a >= 19 && a <= 100) {
		printf("성인입니다.\n");
	}
	else {
		printf("유효하지 않습니다.");
	}

	return 0;
}

출력결과
(15 입력 시)
나이를 입력하세요: 15
청소년입니다.

● 문자 한 개를 입력받아 'y'라면 "네, 드라이브를 포멧하겠습니다."를 출력하고, 'n'이라면 "아니오, 드라이브를 포멧하겠습니다." 출력하기

#include<stdio.h>

int main(void) {
	char answer = 0;

	printf("정말로 이 드라이브를 포멧하시겠습니까? (y/n) ");
	scanf_s("%c", &answer);

	if (answer == 'y') {
		printf("네, 드라이브를 포멧하겠습니다.\n");
	}
	else if (answer == 'n') {
		printf("아니오, 드라이브를 포멧하겠습니다.\n");
	}
	else {
		printf("유효하지 않습니다.");
	}

	return 0;
}

출력결과
(y 입력 시)
정말로 이 드라이브를 포멧하시겠습니까? (y/n) y
네, 드라이브를 포멧하겠습니다.

● 정수 값을 한 개 입력받아 성적구간 출력하기

#include<stdio.h>

int main(void) {
	int score = 0;

	printf("점수를 입력하시오 : ");
	scanf_s("%d", &score);

	if (score >= 91 && score <= 100) {
		printf("학점은 A 입니다.");
	}
	else if (score >= 81 && score <= 90) {
		printf("학점은 B 입니다.");
	}
	else if (score >= 71 && score <= 80) {
		printf("학점은 C 입니다.");
	}
	else if (score >= 61 && score <= 70) {
		printf("학점은 D 입니다.");
	}
	else if (score >= 0 && score <= 60) {
		printf("학점은 F 입니다.");
	}
	else {
		printf("유효하지 않습니다.");
	}

	return 0;
}

출력결과
(88 입력 시)
점수를 입력하시오 : 88
학점은 B 입니다.


switch문

여러 개 중에 선택하라

  • if~else if~else를 이용하여 10개 이상의 조건을 수행한다면...
if (조건 1) 수행 `;
else if (조건2) 수행2;
else if (조건3) 수행3;
....
else
	수행n;

조건이 많아질수록 가독성이 떨어짐 => 유지보수 하기 어렵다.
그래서 switch~case문을 사용한다.

  • switch~case문의 기본원리
switch (n) {
	case 1:
		수행1
    	break;
    case 2:
		수행2
    	break;
	case 3:
		수행3
    	break;
    default:
    	수행4
        break;
}

default (기본값)
if문에서 else에 해당된다.

#include<stdio.h>

int main(void) {

	int shortcut;
	printf("단축키를 입력하시오: ");
	scanf_s("%d", &shortcut);

	switch (shortcut)
	{
	case 1:
		printf("딸: 010-2389-XXXX\n");
		break;
	case 2:
		printf("아들: 010-5577-XXXX\n");
		break;
	case 3:
		printf("남편: 010-4561-XXXX\n");
		break;

	default:
		printf("해당 단축키가 없습니다.\n");
		break;
	}

	return 0;
}

● 정수를 입력받아 1-12월 계절 출력하기

#include<stdio.h>

int main(void) {

	int month;
	printf("1-12월 중에 월을 입력하세요. : ");
	scanf_s("%d", &month);

	switch (month)
	{
	case 1: case 2: case 12:
		printf("겨울");
		break;
	case 3: case 4: case 5:
		printf("봄");
		break;
	case 6: case 7: case 8:
		printf("여름");
		break;
	case 9: case 10: case 11:
		printf("가을");
		break;
	default:
		printf("해당하는 월이 없습니다.\n");
		break;
	}
	return 0;
}	

출력결과
(1 입력 시)
1-12월 중에 월을 입력하세요. : 1
겨울

● 정수 입력받아 성적구간 출력하기

#include<stdio.h>

int main(void) {

	int score = 0;

	printf("점수를 입력하세요 : ");
	scanf_s("%d", &score);

	int grade = (score-1) / 10;

	switch (grade)
	{
	case 9:
		printf("학점은 A 입니다.");
		break;
	case 8:
		printf("학점은 B 입니다.");
		break;
	case 7:
		printf("학점은 C 입니다.");
		break;
	case 6:
		printf("학점은 D 입니다.");
		break;
	case 5: case 4: case 3: case 2: case 1:
		printf("학점은 F 입니다.");
		break;

	default:
		printf("유효하지 않습니다.");
		break;
	}


	return 0;
}

0~9가 아닌 1~0의 범위이므로 입력받은 값에 1을 빼서 적용시킨다.

● 정수를 입력받아 입력한 값이 짝수이면 "입력한 수는 짝수입니다", 홀수이면 "입력한 수는 홀수입니다." 출력하기

#include<stdio.h>

int main(void) {

	int num = 0;

	printf("한 개의 정수를 입력하세요 : ");
	scanf_s("%d", &num);

	num = num % 2;


	switch (num)
	{
	case 0:
		printf("짝수입니다.\n");
		break;
	case 1:
		printf("홀수입니다.\n");
		break;

	default:
		printf("유효하지 않는 수입니다.");
		break;
	}


	return 0;
}

반복문

while문

  • while문의 기본 원리
while(반복 조건)
{
	반복 문장
}

반복 조건을 만족하는 동안 반복 문장을 수행한다.
반복 조건을 만족하지 않으면 while문을 빠져나간다.


#include<stdio.h>

void main() {
	
	int i = 0;

	while (i < 5) {
		printf("Programming\n");
		i++;
	}
	return;
}

출력결과
Programming
Programming
Programming
Programming
Programming

● while문을 사용하여 별표 10개 출력하기

#include<stdio.h>

void main() {

	int i = 0;

	while (i < 10) {
		printf("*");
		i++;
	}
	return;
}

출력결과 **********

● while문을 사용하여 1월부터 12월까지 출력하기

#include<stdio.h>

void main() {

	int i = 1;

	while (i < 13) {
		printf("%d월\n", i);
		i++;
	}
	return;
}

출력결과
1월
2월
3월
4월
5월
6월
7월
8월
9월
10월
11월
12월

● while문을 사용하여 구구단 2단 출력하기

#include<stdio.h>

void main() {

	int i = 1;

	while (i < 10) {
		printf("2 * %d = %d\n", i, 2 * i);
		i++;
	}
	return;
}

출력결과
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18


앱인벤터 #5

현재 나의 위치정보 알아내기

  • 디자인

  • 블록

과제
말하는 고양이 음성기능 활용하여 구현해보기

  • 디자인
  • 블록
profile
알고 쓰자!

0개의 댓글