3. 조건 & 분기
#include <stdio.h>
#include <time.h> //밑에 코딩 랜덤으로 숫자 뽑을때 필요함.
int main(void) // 이젠 기본
{
return 0;
}3.1 IF 조건문
버스를 탄다고 가정. 학생/ 일반인으로 구분(일반인 : 20세)
if(조건) {} else{}
int age = 25;
if (age >= 20)
{
printf("일반인 입니다\n");
}
else
{
printf("학생입니다\n");초등학생(813) 중학생(1416) 고등학생(17~19)으로 나누면?
if {}/ else if{} / else{} . else if는 여러번나와도 상관없음.
int age = 25;
if (age >= 8 && age <= 13) //&&란 양쪽 조건이 모두 만족할때 의미
{
printf("초등학생입니다\n");
}
else if (age >= 14 && age <= 16)
{
printf("중학생입니다\n");
}
else if (age >= 17 && age <= 19)
{
printf("고등학생입니다\n");
}
else
{
printf("학생이 아닌가봐요\n");
}3.2 break와 continue
break for문탈출하기.
1번부터 30번까지 있는 반에서 1번에서 5번까지 조별발표를 합니다.
for (int i = 1; i <= 30; i++)
{
if (i >= 6)
{
printf("나머지학생은 집에 가세요\n");
break;
}
printf("%d번 학생은 조별 발표 준비를 하세요\n", i);
}1번부터 30번까지 있는반에서 7번학생은 아파서 결석
7번을 제외하고 6번부터 10번까지 조별발표를하세요.
continue 조건에 들어왔을때 조건만족하면 다음 명령수행안하고 바로 다음 단계로
for (int i = 1; i <= 30; i++)
{
if (i >= 6 && i <= 10)
{
if (i == 7)
{
printf("%d번 학생은 결석입니다\n", i);
continue;
}
printf("%d번 학생은 발표를 준비하세요\n", i);
}
}3.3 and연산자 && 와 or연산자 ||(시프트+역슬래쉬 두번)
int a = 10;
int b = 11;
int c = 13;
int d = 13;
if (a == b || c == d)
{
printf("a와b 혹은 c와 d도 같습니다\n");
}
else
{
printf("값이 서로 다르네요\n");
}가위0 바위1 보2 srand <time.h>사용 랜덤뽑기 int i = rand() % 값 값사이 반환
srand(time(NULL));
int i = rand() % 3; // 0~2 반환
if (i == 0)
{
printf("가위\n");
}
else if (i == 1)
{
printf("바위\n");
}
else if (i == 2)
{
printf("보\n");
}
else
{
printf("몰라요\n");
}3.4 switch문
switch(값)
case 값:printf("?"); break;
case 값:printf("?"); break;
default:printf("?"); 조건맞으면 탈출해야하니 중간마다 break; 넣기
srand(time(NULL));
int i = rand() % 3;
switch (i)
{
case 0:printf("가위\n"); break;
case 1:printf("바위\n"); break;
case 2:printf("보\n"); break;
default:printf("몰루\n"); break;
}case 어떤걸 경우 만나면 비교하지 않고 그냥 쭉 실행 break; 만나면 멈춤
int age = 17;
switch (age)
{
case 8:
case 9:
case 10:
case 11:
case 12:
case 13: printf("초등학생입니다\n"); break;
case 14:
case 15:
case 16:printf("중학생입니다\n"); break;
case 17:
case 18:
case 19:printf("고등학생입니다\n"); break;
default:printf("학생이 아닌가봐요\n"); break;
}3.5 프로젝트 Up and Down
srand(time(NULL));
int num = rand() % 100 +1 ; //1~100까지 숫자 원래 0부터니까 +1
//printf("정답 미리보기: %d\n", num); //테스트용 미리알기
int answer = 0; //변수 선언
int chance = 5; //정답 기회 변수
int count = 0;
while (chance > 0)
{
printf("남은 기회 %d번\n", chance--);
printf("숫자를 맞춰보세요 (1~100): ");
scanf_s("%d", &answer);
count++;
if (answer < 1 || answer > 100)
{
printf("1~100사이의 수를 입력하세요\n\n");
chance++;
count--;
continue;
}
if (answer == num)
{
printf(" 정답입니다! %d번만에 맞추셨습니다.\n\n",count);
break;
}
else if (answer < num)
{
printf("Up\n\n");
}
else if (answer > num)
{
printf("Down\n\n");
}
if (chance == 0)
{
printf("모든 기회 상실, 아쉽게 실패했습니다.");
}
}
강의에서보다 조금 업그레이드 완료 몇번만에 맞췄는지 추가
1~100사이가 아니면 다시 입력하게 하기 추가
'기초단계 > c언어' 카테고리의 다른 글
| 2022.11.10-1 배열 (0) | 2022.11.10 |
|---|---|
| 2022.11.09-2 함수 (0) | 2022.11.09 |
| 2022.11.08.-3 반복문 (0) | 2022.11.08 |
| 2022.11.08.-2 변수, 상수, 입출력 (0) | 2022.11.08 |
| 2022.11.08.-1 프로그램과 프로그래밍 이해 (0) | 2022.11.08 |