์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์ œ์–ด๋ฌธ(Control Statement): ๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ

๋ฒผ๋ฆฌ01 2023. 9. 1. 17:40

์–ธ์–ด: c++

 

| ๋ฐ˜๋ณต๋ฌธ

1. for๋ฌธ

for(์ดˆ๊ธฐํ™”๋ฌธ์žฅ; ๋ฐ˜๋ณต์กฐ๊ฑด; ์ฆ๊ฐ๋ฌธ์žฅ)
	๋ฐ˜๋ณตํ• _๋ฌธ์žฅ;

 

์ฆ๊ฐ๋ฌธ์žฅ์€ ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค~!~!~~!~!!~~ ๋ถ™์ด๋ฉด ์˜ค๋ฅ˜๋‚œ๋‹ค

์•„๋ฌด์ƒ๊ฐ ์—†์ด ์„ธ๋ฏธ์ฝœ๋ก  ๋ถ™์˜€๋‹ค๊ฐ€ ํ™”๋ฉด์ด๋ž‘ ๋ˆˆ์‹ธ์›€ํ•จ ๋ˆˆ์•Œ ๋น ์ง€๋Š” ์ค„ ์•Œ์•˜๋‹ค

for๋ฌธ๊ณผ if๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ 10๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค.

 

#include <iostream>
using namespace std;

int main(){
int val, total = 0;
	for(int = 0; i < 10; i++)
		cin >> val;
		total += val;
        cout << "ํ•ฉ๊ณ„๋Š”" << total << "์ž…๋‹ˆ๋‹ค."
}
ํ•ฉ๊ณ„๋Š” total์ž…๋‹ˆ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ๋‚˜๋Š” ํ•œ ๊ฐœ์˜ ๊ฐ’์„ ์ž…๋ ฅํ•  ๋•Œ๋งˆ๋‹ค "i++๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”."๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

๋งจ ์ฒ˜์Œ์—๋Š” "1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”."๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ, i๊ฐ€ ์ฆ๊ฐ€ํ• ๋•Œ๋งˆ๋‹ค "n๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." ๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” if๋ฌธ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

 

#include <iostream>
using namespace std;

int main() {
    int val, total = 0;
    cout << "10๊ฐœ์˜ ์ •์ˆ˜์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. \n1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    for (int i = 0; i < 10 ; i++) {
        cin >> val;
        total += val;
        if (i < 9)
            cout << i + 2 << "๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    }
    cout << "ํ•ฉ๊ณ„๋Š” " << total << "์ž…๋‹ˆ๋‹ค." << endl;
}

 

๋ฏธ๋ž˜์˜ ๋‚ด๊ฐ€ ๋ฉ์ฒญํ•œ ์งˆ๋ฌธ์„ ํ• ๊นŒ๋ด ๋ฏธ๋ฆฌ ์„ค๋ช…ํ•œ๋‹ค.

11ํ–‰  cout << i + 2 << "๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl; ์—์„œ ์™œ i + 2๋ƒ๋ฉด ์ฒ˜์Œ์— i์—๋‹ค 0์„ ๋„ฃ์–ด์„œ ๊ทธ๋ ‡๋‹ค. i + 1๋กœ ์ž‘์„ฑํ•˜๋ฉด 2๋ฒˆ์งธ ๊ฐ’์„ ์ž…๋ ฅํ•  ๋•Œ ๋˜ "1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”"๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋งจ ์ฒ˜์Œ์— 1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ง์ด ์ด๋ฏธ ์ถœ๋ ฅ๋˜์—ˆ์œผ๋‹ˆ๊นŒ "2๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." ๋ถ€ํ„ฐ ๋‚˜์™€์•ผ ๋œ๋‹ค. ใ…‡ใ…‹?

 

 

 

 

3. while๋ฌธ

while์€ ๋ฐ˜๋ณต ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

while(๋ฐ˜๋ณต์กฐ๊ฑด)
	๋ฐ˜๋ณตํ• ๋ฌธ์žฅ;

 

๋ฐ˜๋ณต ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๋ฌธ์žฅ์„ ๋ฐ˜๋ณตํ•˜๊ณ , ๊ฑฐ์ง“์ด ๋˜๋ฉด ๋ฃจํ”„๋ฅผ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

 

 

 

 

#include <iostream>
using namespace std;

int main() {
    int val, total = 0;
    cout << "10๊ฐœ์˜ ์ •์ˆ˜์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. \n1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    
    for (int i = 0; i < 10 ; i++) {
        cin >> val;
        total += val;
    if (i < 9)
    	cout << i + 2 << "๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    }
    
    
    cout << "ํ•ฉ๊ณ„๋Š” " << total << "์ž…๋‹ˆ๋‹ค." << endl;
}

 

 

์ƒ๋‹จ์—์„œ ์ž‘์„ฑํ–ˆ๋˜ for๋ฌธ์„ ์ด์šฉํ•œ ํ”„๋กœ๊ทธ๋žจ์„ while๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์‹œ ์ž‘์„ฑํ•œ๋‹ค.

 

 

#include <iostream>
using namespace std;

int main() {
    int val, total = 0;
    cout << "10๊ฐœ ์ •์ˆ˜์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. \n1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    
    int i = 0;

    while(i < 10){
        cin >> val;
        total += val;
        i++;
        cout << i + 1 << "๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    }

    cout << "ํ•ฉ๊ณ„๋Š” " << total << "์ž…๋‹ˆ๋‹ค." << endl;
}

 

์˜ค์ž‰? 11๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ง๋„ ๊ฐ™์ด ์ถœ๋ ฅ๋จ... ๊ทธ๋ ‡๋‹ค๊ณ  while ์กฐ๊ฑด์— i < 10์„ i < 9 ๋กœ ์ค„์ด๋ฉด 10๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ๋ชป ๋ฐ›๋Š”๋‹ค.

๊ทธ๋ž˜์„œ if๋ฌธ์„ ๋‹ค์‹œ ๋„ฃ์Œ...

 

 

#include <iostream>
using namespace std;

int main() {
    int val, total = 0;
    cout << "10๊ฐœ ์ •์ˆ˜์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. \n1๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    
    int i = 0;

    while(i < 10){
        cin >> val;
        total += val;
        i++;
        	if(i < 10){
        	cout << i + 1 << "๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”." << endl;
    }
    }
    
    cout << "ํ•ฉ๊ณ„๋Š” " << total << "์ž…๋‹ˆ๋‹ค." << endl;
}

 

๊ทผ๋ฐ ์ด๋Ÿด ๊ฑฐ๋ฉด for๋ฌธ์„ ์™œ while๋กœ ๋ฐ”๊พธ์ง€?

 

 

 

4. do while๋ฌธ

 

do
๋ฐ˜๋ณตํ• ๋ฌธ์žฅ;
    while(๋ฐ˜๋ณต์กฐ๊ฑด);

 

while ์ฒ˜๋Ÿผ ๋ฐ˜๋ณต์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๋ฃจํ”„๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ.

์กฐ๊ฑด์ด ๋’ค์— ์žˆ์–ด์„œ ์ผ๋‹จ do์— ์ ํžŒ ๋ฌธ์žฅ์„ ์‹คํ–‰ํ•œ ํ›„์— ๋ฐ˜๋ณต์กฐ๊ฑด์„ ํ™•์ธํ•œ๋‹ค. 

 

 

 

 

| ์กฐ๊ฑด๋ฌธ

 

1. if๋ฌธ

if(์กฐ๊ฑด)
	๋ฌธ์žฅ1;	// ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ๋ฌธ์žฅ1

 

 

๋ฌธ์žฅ์ด ํ•˜๋‚˜๋ฉด ๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ด„ํ˜ธ๋ฅผ ์น˜๋Š” ๊ฒŒ ์ •์‹ ๊ฑด๊ฐ•์— ์ข‹๋‹ค.

 

 

 

1-1. if-else๋ฌธ

if(์กฐ๊ฑด){
		๋ฌธ์žฅ1;	// ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ๋ฌธ์žฅ1
    }
   	else{
		๋ฌธ์žฅ2;	// ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ๋ฌธ์žฅ2
    }

 

else๊ฐ€ ํ•„์š”์—†์œผ๋ฉด ์•ˆ ์จ๋„ ๋œ๋‹ค. if-else๋ฌธ์€ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ๋‹ค.

 

๋ณ€์ˆ˜ = ์กฐ๊ฑด๋ฌธ ? ์ฐธ์ผ ๋•Œ : ๊ฑฐ์ง“์ผ ๋•Œ;

 

1-2. if-else if-else๋ฌธ

if(์กฐ๊ฑด){
	๋ฌธ์žฅ1;	// ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ๋ฌธ์žฅ1
} else if(์กฐ๊ฑด){
	๋ฌธ์žฅ2;	// if์˜ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๊ณ , else if์˜ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ๋ฌธ์žฅ2
}

 

 

์œ„์—์„œ ์กฐ๊ฑด ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋‚˜์”ฉ ํ•˜๋ฉด์„œ ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ๋งŒ ๊ฑธ๋Ÿฌ์ ธ ๋‚ด๋ ค์˜ค๊ธฐ ๋•Œ๋ฌธ์—,

๋ฐ‘์— ์ ํžŒ else if๋ฌธ์—์„œ๋Š” ์ด์ „์˜ if ์กฐ๊ฑด์ด๋‚˜ else if ์กฐ๊ฑด์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค๋งŒ ํ˜๋Ÿฌ๋“ค์–ด์˜จ๋‹ค.

 

2. switch๋ฌธ

switch (์ •์ˆ˜ํ˜•_์ˆ˜์‹){
case ๊ฐ’1:
	๋ฌธ์žฅ1;
    break;	// switch๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ.
case ๊ฐ’2:
	๋ฌธ์žฅ2;
    break;
default:
	๋ฌธ์žฅn;	// default ๋ฐ‘์œผ๋กœ๋Š” ๋ฌธ์žฅ์ด ์—†์œผ๋ฏ€๋กœ break ์•ˆ ์จ๋„ ๋จ.

 

์ •์ˆ˜ํ˜• ์ˆ˜์‹์˜ ๊ฐ’์— ๋”ฐ๋ผ case ์œ„์น˜๋กœ ์ ํ”„. ๋ฐ‘์œผ๋กœ ๋ฌธ์žฅ์ด ๊ณ„์† ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— break;๋ฌธ์„ ๊ผญ ์ž‘์„ฑํ•œ๋‹ค.

ํ•ด๋‹น๋˜๋Š” ๊ฐ’์ด ์—†์œผ๋ฉด default๋กœ ์ ํ”„. default ๋ฐ‘์œผ๋กœ๋Š” ์ง„ํ–‰๋˜๋Š” ๋ฌธ์žฅ์ด ์—†์œผ๋ฏ€๋กœ break;๋ฅผ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค.

 

 

 

๋‹ค์Œ์€ switch๋ฌธ์œผ๋กœ ์„ฑ์ ์„ ์ž…๋ ฅ๋ฐ›์•„ ํ•™์ ์„ ๋„์ถœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

#include <iostream>
using namespace std;

int main(){
    cout << "์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” :" << endl;
	
    int score = 0;
    char grade;
    cin >> score;

    switch(score/10) {
	case 10:
	case 9: grade = 'A';
		break;
	case 8: grade = 'B';
		break;
    default: grade = 'F';
    }
    
    cout << "ํ•™์ ์€" << grade << "์ž…๋‹ˆ๋‹ค." << endl;
}

๊ฒฐ๊ณผ(๋‚ด์ ์ˆ˜์—ฟ์œผ๋ฉด์ข‹๊ฒŸ๋‹ค)

์—ฌ๊ธฐ์„œ ํ•™์ ์ด A๋ฉด "์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค.", F๋ฉด "๋ถ„๋ฐœํ•˜์„ธ์š”." ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

 

#include <iostream>
using namespace std;

int main(){
    cout << "์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” :" << endl;
    
    int score = 0;
    char grade;
    cin >> score;

    switch(score/10) {
	case 10:
	case 9: grade = 'A';
		break;
	case 8: grade = 'B';
		break;
	case 7: grade = 'C';
		break;
	case 6: grade = 'D';
		break;
	default: grade = 'F';
    }
    
    cout << "ํ•™์ ์€" << grade << "์ž…๋‹ˆ๋‹ค." << endl;

        if(score >= 90)
            cout << "์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!" << endl;
        else
            cout << "์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค." << endl;

        if(score < 60)
            cout << "๋ถ„๋ฐœํ•˜์„ธ์š”." << endl;  
}

 

๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ f์ผ ๋•Œ๋„ ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

F๋Š” ์ˆ˜๊ณ ํ–ˆ๋‹ค๋Š” ๋ง์„ ๋นผ๊ณ  ์‹ถ๋‹ค.

 

#include <iostream>
using namespace std;

int main(){
    cout << "์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” :" << endl;
    
    int score = 0;
    char grade;
    cin >> score;

    switch(score/10) {
	case 10:
	case 9: grade = 'A';
		break;
	case 8: grade = 'B';
		break;
	case 7: grade = 'C';
		break;
	case 6: grade = 'D';
		break;
    default: grade = 'F';
    }
    
    cout << "ํ•™์ ์€" << grade << "์ž…๋‹ˆ๋‹ค." << endl;

        if(score >= 90)
            cout << "์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!" << endl;
        
        if(score >= 60)
            cout << "์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค." <<endl;

        if(score < 60)
            cout << "๋ถ„๋ฐœํ•˜์„ธ์š”." << endl;  
}

 

if๋ฌธ์ด ๋”๋Ÿฝ๊ธด ํ•œ๋ฐ ์ด๋Ÿฌ๋‹ˆ๊นŒ ํ•ด๊ฒฐ๋จ.

59์  ์ดํ•˜๋Š” ๋ถ„๋ฐœํ•˜์„ธ์š” ์ถœ๋ ฅ

60์  ์ด์ƒ์€ ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค ์ถœ๋ ฅ

90์  ์ด์ƒ์€ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค ์ถœ๋ ฅ