상세 컨텐츠

본문 제목

Flow control [Conditional Statements]

개발생활/C C++

by 코보소 2021. 4. 4. 14:07

본문

반응형

if, elseif,  else


 

 

 

 

조건문이란 프로그래밍에서 분기를 만들어주는 구문이라고 할수있다.

 

조건이 ture라면 true분기점으로 코드를 실행하고, false에 있는 분기는 실행하지않는 특징을 가지고 있다.

 

if(조건 1 ){

}
else if(조건2 ){

}
else{
// 조건1, 조건2 에 해당되지 않는 모든값이 이곳으로 들어온다.
}

 

해당되는 조건이 많을경우 else if를 추가해주면 된다.

 

다음과 같이 사용할수있다.

#include<stdio.h>

void main() {
	
	int a = 12;

	if (a < 10) {
		printf("a 값은 10보다 작습니다.");
	}
	else if (a >= 10 && a <= 20) {
		printf("a는 10이상이고 20보다 같거나 작습니다.");
	}
	else {
		printf("a는 20보다 큰값입니다.");
	}

	fgetc(stdin);
}

 

또한 if문은 while, for loop는 if문으로 종료시킬수있다.

 

예를 들어 while문이 현재 무한루프상태이다. 

#include<stdio.h>

void main() {
	
	int number = 0;

	while (true) {
		if (number == 10) break;

		number++;
	}

	fgetc(stdin);
}

 

number값이 10이 되면 반복문을 종료한다.

 

 

 

'break' 키워드

 

반복문에서 사용된다. break 키워드는 반복문,  switch문이 계속 진행되지않도록 멈추는 역할을 한다.

#include<stdio.h>

void main() {
	
	int number = 1;
	int count = 0;
	while (number <= 10) {
		if (number % 2 == 0) break;
		number++;
		printf("%d\n", number);
	}

	fgetc(stdin);
}

 

짝수는 2로 나눈 나머지가 0인경우가 짝수이다. 그래서 모듈러 연산자를 활용했다.

 

현재 코드에서 짝수가 되면 프로그램이 종료되어

결과값은 2만 출력하게 된다.

 

 

 

 

 

 

 

 

'continue' 키워드

 

반복문 이나 분기 제어할때 사용되는 continue 키워드 이다.

continue키워드는 함수의 흐름을 다시 처음부터 시작하는 역할을 한다 

 

일반적으로 코드의 흐름은 Top-down 형식으로 위에서 아래로 내려오는 흐름을 가지게되는데.

continue키워드를 만나면 아래 흐름이아닌 바로위 흐름으로 올라가는 역할을 한다.

 

 

#include<stdio.h>

void main() {

	int number = 3;
	int count = 0;
	while (number <= 10) {
		if (number % 2 == 0) {
			number++;
			continue;
		}
		else {
			printf("%d\n", number);
		}
		number++;
	}

	fgetc(stdin);
}

해당 코드를 진행하게 되면 홀수값만 출력하게 된다.

10보다 작은 홀수값만 출력하게 된다.

 

 

switch문

switch문 역시 분기 조절을 할때 사용되는 구문이다.

 

구성은 이렇게되어있다.

 

switch(조건){

   case 조건값 :   break;
   case 조건값 :   break;
   case 조건값 :   break;
   default: break;
}

 

사용의 예는 다음과같다.

 

#include<iostream>
using namespace std;

void main() {
	
	int number;
	cout << "수를입력해보세요." << endl;
	cin >> number;

	switch (number){
		case 0: cout << "0 입력" << endl; break;
		case 1: cout << "1 입력" << endl; break;
		default: cout << "0,1 외 값 입력" << endl; break;
	}

	fgetc(stdin);
}

 

 

 

 

사용자로부터 number값을 입력받아 switch 문에 맞는 값이 매칭되어 결과가 출력된다.

 

default조건은 switch문에 없어도 되고, 필요하면 추가하는 형식이다.

 

 

 


혼자 해보기 문제

 

 

1. 사용자로부터 숫자를 입력받아 입력받은수가 짝수면 짝수를 출력, 홀수면 홀수를 출력하는 프로그램만들기

 

[처음 실행하면 보여지는 코드]

 

 

1보다큰 짝수값 입력

 

1보다큰 홀수값입력

 

 

1보다 작은값을 입력했을때.

 

 

☆ 다음과값이 모든 코드가 반복되지않고 1회에 실행하고 종료되어야한다.

☆ 사용자가 0보다 작은값을 입력할때 Error 문장을 출력하고 종료 되어야 한다.

 

 

 

2.다음과같이 출력되는 프로그램을 만들어라.

 

사용자가 1~9의 수를 입력하면 그값에 맞는 구구단을 출력하면된다.

 

사용자가 0을입력하면 프로그램을 종료하고,

0보다 작은값 이나 9보다 큰값을 입력하면 Error를 출력하고 다시 아래 문장을 출력하면 된다.

 

 

 

 

*1~9 범위 값을 입력하면

 

그에맞는 구구단을 출력하고, 다시 프로그램을 시작( 사용자 입력을 기다린다.)

 

*0값을 입력했을때 

 

다음 문구가 출력되고 프로그램이 종료되어야한다.

 

 

* 0보다 작거나 9보다 큰값을 입력했을때 출력

Error를 출력하고, 다시 처음부터 시작.

 

 

 

 

반응형

'개발생활 > C C++' 카테고리의 다른 글

pointer-2  (0) 2021.04.13
Array  (0) 2021.04.13
Function / Header File  (0) 2021.04.13
Loop- 2  (0) 2021.04.04
c/c++ Gitignore file  (0) 2021.03.30
Loop -1  (0) 2021.03.21

관련글 더보기

댓글 영역