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
반응형