C/C++ 제어문
제어문의 종류
C언어의 제어문에는 조건문 반복문 분기문이 있으며 종류는 아레와 같다
조건문 | 반복문 | 분기문 |
---|---|---|
if | for | goto |
if~else | while | continue |
switch~case | do~while | break |
이중 if와 for문의 사용빈도가 가장 높다.
if문
if (참){
참일경우 실행문
} else if (조건){
참이 아니며 조건이 맞을 경우
} else {
거짓일경우 실행문
}
위 처럼 사용한다. else if는 여러 조건을 나눠야 할때 쓰인다. 특정상황에는 switch case문은 else if를 대체할 수 있다.
switch~case
switch(조건식){ //조건식은 결과가 정수형(int, char, enum)인 수식만 가능
case 상수1 : //조건식의 결과가 상수1이면, if(조건식==상수1)
문장1;
break; //switch~case문 루프를 벗어남
case 상수2 : //조건식의 결과가 상수2이면, else if(조건식==상수2)
문장2;
break;
case 상수n:
문장n;
break;
default : //만족하는 경우가 없을 때, 다중 if~else의 마지막 else에 해당
문장;
break;//없어도 되지만 통일감을 위해 쓰는 것이 좋음
}//switch~case문 루프 끝
주로 조건이 명확하게 나누어지고 처리해야할 분기가 균일할때 쓰인다.
아레는 계산기 예시를 c++ switch~case문으로 만들어 본것이다.
#include <iostream>
using namespace std;
int main() {
char op;
int num1, num2;
while (true) {
cout << "덧셈과 뺄셈만 가능합니다\n";
cout << "끝내려면 0+0을 입력하세요\n"; //추가
cout << "계산하려는 수식(예:10+20)을 입력하세요:";
cin >> num1 >> op >> num2; //10+20
if (num1 == 0 && num2 == 0) break;
switch (op) {
case '+':
cout << "덧셈 결과는 " << (num1 + num2) << "입니다.\n";
break;
case '-':
cout << "뺄셈 결과는 " << (num1 - num2) <<"입니다.\n";
break;
case '*':
cout << "곱셈 결과는 " << (num1 * num2) <<"입니다.\n";
break;
case '/':
cout << "나눗셈 결과는 " << ((double)num1 / num2) <<"입니다.\n";
break;
default:
cout <<"다시 입력하세요\n";
break;
}
}
return 0;
}
for문
for (변수생성;조건;증감){
실행문
}
for문은 위 처럼 쓰며 아레는 c++에서 반복문을 이용, setw의 사용법이다.
for(int i=1;i<=10;i++){
std::cout<< std::setw(2) << i << " : Hello\n";
} //setw는 Set Width의 약자이며 2인경우 i를 2칸 넓이로 쓴다는 의미이다.
using namespace std::cout;
using namespace std::setw;
for(int i=1;i<=10;i++){
cout<< setw(2) << i << " : Hello\n";
}
using namespace std::cout;
for(int i=1;i<=10;i++){
cout.width(2); //다음에 출력되는 하나(i)를 두칸에 출력
cout<< i << " : Hello\n";
}
for(int i=1;i<=10;i++){
std::cout.width(2); //다음에 출력되는 하나(i)를 두칸에 출력
std::cout<< i << " : Hello\n";
}
while문
#include <iostream>
using namespace std;
int main() {
int menu;
do {
cout << "메뉴" << endl;
cout << "1:추가" << endl;
cout << "2:삭제" << endl;
cout << "3:저장" << endl;
cout << "4:변경" << endl;
cout << "원하는 작업을 선택하세요->";
} while (!(menu >= 1 && menu <= 3));
cout <<"선택한 메뉴 번호는 "<< menu <<"입니다."<<endl;
return 0;
}
무한루프로 사용하기
for (; ;) {
printf("Hi ");
}
while (1) {
printf("Hi ");
}
do {
printf("Hi ");
} while (1);
출처 : Smile Han C언어 - YouTube