profile-img
์ง€๋ฐ์ด์˜ ํ‹ฐ์Šคํ† ๋ฆฌ
images/slide-image

- ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ด€์šฉ๊ตฌ(idiom)๋Š” ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ํŠน๋ณ„ํ•œ ๋ฐฉ๋ฒ•

 


1. **Guarded Action (๊ฐ€๋“œ๋œ ๋™์ž‘)**:

int temperature = 25; // ์˜ˆ์‹œ๋กœ ์˜จ๋„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
if (temperature > 30) {
    // ๋†’์€ ์˜จ๋„์— ๋Œ€ํ•œ ๋™์ž‘
    cout << "It's hot outside!" << endl;
} else if (temperature < 10) {
    // ๋‚ฎ์€ ์˜จ๋„์— ๋Œ€ํ•œ ๋™์ž‘
    cout << "It's cold outside!" << endl;
} else {
    // ์ค‘๊ฐ„ ์˜จ๋„์— ๋Œ€ํ•œ ๋™์ž‘
    cout << "The weather is comfortable." << endl;
}
```


์ด ์˜ˆ์‹œ์—์„œ๋Š” `temperature` ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. `if`, `else if`, `else` ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜จ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜๋ฉด ํ•ด๋‹น ๋™์ž‘์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

2. **Alternative Action (๋Œ€์•ˆ ๋™์ž‘)**:

try {
    // ํŒŒ์ผ ์—ด๊ธฐ ์‹œ๋„
    ifstream file("example.txt");
    if (!file.is_open()) {
        throw runtime_error("File not found."); // ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์˜ˆ์™ธ ๋ฐœ์ƒ
    }

    // ํŒŒ์ผ ๋‚ด์šฉ ์ฝ๊ธฐ
    // ...

    file.close();
} catch (const exception& e) {
    // ํŒŒ์ผ ์—ด๊ธฐ๋‚˜ ์ฝ๊ธฐ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋Œ€์•ˆ ๋™์ž‘
    cout << "An error occurred: " << e.what() << endl;
    // ๋Œ€์•ˆ ๋™์ž‘์œผ๋กœ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
}


```

์ด ์˜ˆ์‹œ์—์„œ๋Š” ํŒŒ์ผ์„ ์—ด ๋•Œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋Œ€์•ˆ ๋™์ž‘์œผ๋กœ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘๋‹จ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

3. **Multiple Selection (๋‹ค์ค‘ ์„ ํƒ)**:

int option = 2; // ์˜ˆ์‹œ๋กœ ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
switch (option) {
    case 1:
        // ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์— ๋Œ€ํ•œ ๋™์ž‘
        cout << "Option 1 selected." << endl;
        break;
    case 2:
        // ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์— ๋Œ€ํ•œ ๋™์ž‘
        cout << "Option 2 selected." << endl;
        break;
    case 3:
        // ์„ธ ๋ฒˆ์งธ ์˜ต์…˜์— ๋Œ€ํ•œ ๋™์ž‘
        cout << "Option 3 selected." << endl;
        break;
    default:
        // ๋‹ค๋ฅธ ์˜ต์…˜์— ๋Œ€ํ•œ ๋™์ž‘
        cout << "Invalid option selected." << endl;
        break;
}


์ด ์˜ˆ์‹œ์—์„œ๋Š” `switch` ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ `option` ๋ณ€์ˆ˜์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋™์ž‘์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. `case` ๋ฌธ์€ ๋‹ค๋ฅธ ์˜ต์…˜์— ๋Œ€ํ•œ ๋™์ž‘์„ ์ •์˜ํ•˜๊ณ , `default`๋Š” ์–ด๋–ค ์˜ต์…˜์—๋„ ๋งž์ง€ ์•Š์„ ๋•Œ ์ˆ˜ํ–‰ํ•  ๋™์ž‘์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

 

4. ๋ถ„๊ธฐ ์กฐ๊ฑด (branching condition)

auto n = 3; 
if(n%2 ==1 ) n = -n; 
else if (n <0) n ++; 
else if ( n%2 =0 ) n--; 
else n =0;

์ด idiom์€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์กฐ๊ฑด๋ฌธ๊ณผ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ถ€๋ถ„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ์€ ์ฃผ์–ด์ง„ ์ฝ”๋“œ์—์„œ ์–ด๋–ค ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค:1. `n`์ด ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ (n%2 == 1):   - `n`์„ ์Œ์ˆ˜๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. (`n`์€ ์ด์ œ -3์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.)2. `n`์ด ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ (n < 0):   - `n`์„ 1 ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. (์ด ๊ฒฝ์šฐ์—๋Š” -3์—์„œ -2๋กœ ์ฆ๊ฐ€๋ฉ๋‹ˆ๋‹ค.)3. `n`์ด ์ง์ˆ˜์ธ ๊ฒฝ์šฐ (n%2 == 0):   - `n`์„ 1 ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค. (์ด ๊ฒฝ์šฐ์—๋Š” -2์—์„œ -3์œผ๋กœ ๊ฐ์†Œ๋ฉ๋‹ˆ๋‹ค.)4. ์œ„์˜ ๋ชจ๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ:   - `n`์„ 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.์ด๊ฒƒ์€ ๋ถ„๊ธฐ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณด์—ฌ์ฃผ๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ๊ฐ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ๋ถ„๊ธฐ๋˜๋ฉฐ, ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ํ•ด๋‹น ์กฐ๊ฑด์— ๋งž๋Š” ๋™์ž‘์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

 

'เซฎโ‚หถแต” แต• แต”หถโ‚Žแƒโ™ก/coding' Related Articles +