제어구조에는 크게 순차구조, 선택구조, 반복구조가 있다.
if(조건식){
문장1
}
else{
문장2
}
if-else문에서 조건식이 참이면 문장1이 실행되고,
조건이 거짓이면 문장 2가 실행된다.
#include<iostream>
using namespace std;
int main(){
int a,b;
cout<< "a값 입력: ";
cin>>a;
cout<< "b값 입력: ";
cin>>b;
if(a>b)
cout<<"a가 b보다 크다." <<endl;
else
cout<<"b가 a보다 크다."<<endl;
return 0;
}
if(조건식){
문장1
}
else if{
문장2
}
else{
문장3
}
if-else문은 조건식이 참인지 거짓인지에 따라 2개의 문장 중에서 하나를 실행한다.
#include<iostream>
using namespace std;
int main(){
int age;
cout<<"나이 입력 :";
cin>>age;
it(age<=12)
cout<<"어린이"<<endl;
else if(age<=19)
cout<<"청소년"<<endl;
else
cout<<"성인"<<endl;
return 0;
}
❗ c++에서는 다음과 같은 경우도 가능하다.
if(int condition=get_status()) {...}
이 경우 get_status()의 변환값이 condition변수에 저장
되고 ,
이 값이 참이면 블록이 실행된다.
switch문은 여러 개의 가능한 실행 경로 중에서 하나를 선택하는데 사용된다.
#include<iostream>
using namespace std;
int main(){
int number;
cout<<"숫자 입력: ";
cin>>number;
switch(number){
case 0:
cout<<"zero\n";
break;
case 1:
cout<<"one\n";
break;
case 2:
cout<<"two\n";
break;
default:
cout<<"many\n";
break;
}
return 0;
}
case절 안에 break
문이 없으면 다음 case절의 문장들을 계속하여 실행하게 된다.
default
문은 어떤 case문과도 일치하지 않는 경우에 선택되어 실행된다.
default문은 없을 수도 있다.
미처 예상치 못한 값을 알아내기 위해 가급적 defult문을 포함시키는 것이 좋다.
while(조건식){
문장
}
while루프는 조건식이 참이면 반복을 계속 한다.
조건식이 거짓으로 계산되면 반복을 중단한다.
#include<iostream>
usint namespace std;
int main(){
int n;
int i=1;
cout<<"구구단중에 출력하고싶은 단을 입력: ";
cin>>n;
while(i<=9){
cout<<n<<"*"<<"="<<n*i<<endl;
i++;
}
return 0;
}
do-while루프는 while루프와 유사하지만 먼저 문장을 실행하고 조건을 나중에 검사한다.
do{
문장
}while(조건식);
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
do{
cout<<"문자열 입력:";
getline(cin,str);
cout<<"사용자의 입력:"<<str<<endl;
}while(str!="종료");
return 0;
}
getline()
은 사용자로부터 한 줄의 텍스트를 받을 때 사용하는 함수이다. str<<cin;문장을 사용하면 하나의 단어밖에 입력받지 못한다.
for(초기식;조건식;증감식){
문장
}
#include<iostream>
using namespace std;
int main(){
int sum=0;
for(int i=1;i<=10;i++)
sum+=i;
cout<<"1에서 10까지 정수의 합"<<sum<<endl;
return 0;
}
break문은 반복 루프를 벗어나기 위해 사용한다.
반복 루프 안에서 break문이 실행되면 반복루프는 즉시 중단되고 반복 루프 다음에 있는 문장이 실행된다.
countinue문은 현재 수행하고 있는 반복 과정의 나머지를 건너뛰고 다음 반복 과정을 강제적으로 시작하게 만든다.
#include<iostream>
using namespace std;
int main(){
int i=0;
do{
i++;
cout<<"continue문장 전에 있는 문장"<<endl;
continue;
cout<<"continue문장 뒤에 있는 문징"<<endl;
}while(i<3);
return 0;
}