본문 바로가기
C언어

C언어_제어문

by 히예네 2023. 1. 23.
728x90
반응형

1. 조건문(특정 조건을 줘야함, 삼항연산자)

if문, if else문

if(조건식 (비교연산자)) {

조건이 참일때 실행문(거짓이면 실행문을 건너뛴다.) }

if이나 else의 실행문이 2줄 이상이면 {}를 무조건 해야한다. 한줄일때만 {}을 안써도 된다.

 

#include <stdio.h>

void main()
{
int age; //나이를 저장하는 변수를 만든다.

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

if (age >= 20)
{
//조건이 ture일때 실행할 영역
      if (age > 40) //중첩 if문 ,if문 안에 if문이 들어감
      {
           printf("20~40살까지 가입 가능합니다. \n");
      }

       else
	{
	printf("\n안녕하세요.\n");
	printf("접수대로 이동하세요. \n"); //영역이므로 여러줄을 쓸 수 있다.

	int num;//변수선언 (나이가 20살 이상일때만 쓰는 변수, 거짓이면 num은 건너뛴다.)
	printf(" \몇 명이십니까? ");
	scanf_s("%d", &num);

	printf("%d명 좌석으로 안내 할께요!\n", num);
	}
}

else//거짓일때 실행문
{
//조건이 false일때 실행문

int height;
printf("키를 입력하세요?");
scanf_s("%d", &height);

	if (height > 180)
	{
	printf("들어가세요.");
	}

	else
	{
	printf("죄송합니다.\n");
	}
}

printf("\n프로그램 종료\n");
}

 

#include <stdio.h>

void main()
{
printf("점수를 입력하면 학점을 계산해주는 프로그램\n\n");
int score;
printf("점수 입력 : ")
scanf_s("%d", &score);

	if (score >= 90 && score <= 100)
	{
	printf("A 학점입니다.\n");
	}

	else if //else는 조건식을 쓸수없다 if와 다른점! else if로!
	{
	if (score >= 80 && score < 90)
	printf("B학점입니다. \n");


		else
		{
		if (score >= 80 && score < 80)
			printf("C학점입니다. \n");


		else
		{
		if (score >= 70 && score < 80)
			printf("D학점입니다. \n");



		else
		{
		if (score >= 60 && score >= 0)
		printf("F학점입니다. \n");


		else
		{
		printf("점수를 잘못 입력하였습니다. \n");
		printf("다시 입력해주세요. \n");
		}
	}
	}
	}
	}
	}
#include <stdio.h>

void main()
{
printf("점수를 입력하면 학점을 계산해주는 프로그램\n\n");
int score;
printf("점수 입력 : ");
scanf_s("%d", &score);

	if (score >= 90 && score <= 100)
	{
	printf("A 학점입니다.\n");
	}

	else if (score >= 80) //else는 조건식을 쓸수없다 if와 다른점! else if로!
	{
	printf("B학점입니다.");
	}

	else if(score >= 70)
	{
	printf("C학점입니다.");
	}

	else if(score >= 60)
	{
	printf("D학점입니다.");
	}

	else
	{
	printf("F학점입니다.");
	}

}

 

실행문이 다 1줄이면 {}를 없애도 된다.

※if문에는 ;을 안붙인다

else if는 그 밖의 경우를 말한다.

switch문 (세미클론X, 클론으로 마무리)

switch(변수이름)

{

case [1 ] <변수를 쓴다 :

A실행문,

case[2] < 변수 :

B실행문,

}

이 변수가 갖고있는 값이 무엇인가? 

#include <stdio.h>

void main()
{
printf("강아지 키우기 게임 \n\n");
printf("원하는 메뉴를 입력하세요. \n");
printf("1.밥주기\n");
printf("2.산책하기\n");
printf("3.목욕하기\n");
printf("\n메뉴번호 입력 : ");

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

switch (menu) //영역을 지켜줘야함 아니면 순서대로 내려감 if와 차이점
//스위치의 자료형은 정수형만 쓸수있다. 실수,문자열도 안됨.(더블형불가)
// 한문자도 숫자로 취급되므로 캐릭형도 사용가능
//char ch='A';
//case 'A':
{
case 1:
printf("\n와구와구 맛있어 \n");//break전에 명령문을 더 써도 된다.
printf("\n더줄까??\n");
break; // 스위치를 종료시키는 명령문

case 2:
printf("\n신난다!!!!\n");
break;

case 3:
printf("\n아우 씻기싫어\n");
break;

default: //기본적으로 깔고가는거
printf("잘못된 메뉴 번호 입니다. \n");
}

printf("\n\n프로그램 종료\n");
}
#include <stdio.h>

void main()
{
char ch;

printf("학점입력 : ");
scanf_s("%c", &ch, 1); 

switch (ch)
{
case 'A':
case 'a': //소문자도 넣고싶다.
printf("90~100사이 \n");
break;

case 'B':
case 'b':
printf("80~90사이 \n");
break;

case 'C':
case 'c':
printf("70~80사이 \n");
break;

default:
printf("잘못 입력\n");
break;
}
printf("\n\n프로그램 종료\n");
}

 

2. 반복문 (while과 for는 둘 다 호환가능하지만 내가 더 효율적인걸 짜야함)

while (~하는 동안에 반복해라)

while(조건)

{

조건이 참이면 다시 조건을 물어봄 (if문과 다름 if는 참이면 쭉 내려간다.)

조건이 거짓이 될때까지 반복된다.

}

while문은 1. 변수의 초기값, 2. 제어의 조건, 3. 제어변수 연산에 따라 얼마 반복하는지 알수있다.

(1)제어변수 초기화 : 0으로 둔다

(2)제어 조건 <횟수를 쓴다

(3)제어변수 연산 : ++한다

위 3개를 어떻게 해야 원하는 횟수만큼 반복할까?

#include <stdio.h>

void main()
{
int i=2;

while (i < 10)
	{
	int k = 1; //와일문에 다른 변수를 넣어도 된다. 중첩방법.
		while (k < 10)
		{
		printf("%d * %d = %d \n",i,k,i*k);
		k++;
		}
	printf("\n"); //줄한줄 띄어서 보기 편하게
	i++;
		
	}
}

for(~에 대해 참이면 수행해라)

while문과 호환 가능

while문은 1,2,3개를 다 알아야 몇 번 반복되는지 알 수 있다.

for문은 한번에 쓴다. 위치를 한눈에 볼수있다.

#include <stdio.h>

void main()
{
int dan;
printf("단수 입력 : ");
scanf_s("%d", &dan);

for(int i=1;i<10;i++)
{
printf("%d*%d = %d\n", dan, i, dan * i);
}
}

3. 기타 제어문

break; (반복문,switch문 멈출때)-if문 안에 있어도 for문을 멈춘다

switch문과 반복문을 멈출때 사용한다. 프로그램이 끝나는게 아니다

#include <stdio.h>

void main()
{
	for (int i = 0; i < 10; i++)
	{
		if (i == 5)break; //반복문을 멈추는것임, 프로그램은 잘돌아감
		printf("hello\n");
	}
}

 

continue(반복문,switch문)

현재 회차가 끝난것임. 현재 회차가 끝나서 다시 올라감 (현재회차빼고 반복한다.)

#include <stdio.h>

void main()
{
	for (int i = 0; i < 10; i++)
	{
		if (i == 5)continue	; //현재 회차를 종료시키는것임 그래서 5가 안나옴.
		printf("%d\n",i); //continue는 마지막에 들어가면 아무 의미없다.
	}
}
#include <stdio.h>

void main()
{
	for (int dan = 2; dan < 10; dan++)
	{
		if (dan % 2 == 1)continue;
		for (int i = 1; i < 10; i++)
			{
			printf("%d * %d = %d\n", dan, i, dan * 1);
			}
		printf("\n");
			}
}
728x90
반응형

'C언어' 카테고리의 다른 글

C언어_배열  (0) 2023.01.24
C언어_함수  (0) 2023.01.23
C언어_연산자  (0) 2023.01.23
C언어_상수  (0) 2023.01.23
C언어_변수  (0) 2023.01.23