C Programming Language/C++

C++ ๋ฌธ์žฅ๊ณผ ์—ฐ์‚ฐ์ž, ์ œ์–ด๋ฌธ(if, switch, for, while ๋“ฑ)

567Rabbit 2024. 8. 25. 19:30

๋ฌธ์žฅ

๋์ด ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๋๋‚จ

;  ์•„๋ฌด๊ฒƒ๋„ ์—†์ด ์„ธ๋ฏธ์ฝœ๋ก ๋งŒ ์žˆ์–ด๋„ ๋ฌธ์žฅ์ด๋‹ค.

{ } - ๋ณตํ•ฉ๋ฌธ(compound statement)

์ œ์–ด๋ฌธ(if, for, while, switch ๋“ฑ)๋„ ๋ฌธ์žฅ์— ํ•ด๋‹นํ•œ๋‹ค.

 

 

 

 

Operators (์—ฐ์‚ฐ์ž)

 

 

 

 

 

Program Flow Operators

 

- ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์–ดํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์—ฐ์‚ฐ์ž

(1) ํ•จ์ˆ˜ ํ˜ธ์ถœ : C++์—์„œ๋Š” ์—ฐ์‚ฐ์ž๋กœ ์ทจ๊ธ‰

(2) ์กฐ๊ฑด ์—ฐ์‚ฐ์ž : x ? a : b , ์กฐ๊ฑด x๋ฅผ ๋งŒ์กฑํ•˜๋ฉด(true) ํ‘œํ˜„์‹ ๊ฐ’์€ a๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์•„๋‹ˆ๋ฉด(false) b์˜ ๊ฐ’์„ ๊ฐ€์ง

(3) ์ฝค๋งˆ ์—ฐ์‚ฐ์ž : E1, E2 ์ฝค๋งˆ์˜ ์™ผ์ชฝ์— ์žˆ๋Š” E1๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ๋’ค ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” E2๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ ํ‘œํ˜„์‹ ๊ฐ’์€ E2์˜ ๊ฐ’์ž„

     (์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์ค‘ ์ฝค๋งˆ ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์Œ)

 

 

 

 

 

 

if ๋ฌธ

- ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ 2๊ฐœ ์ด์ƒ์˜ ์œ„์น˜๋กœ ์ œ์–ด๋ฅผ ๋ถ„๊ธฐ

- ๋ณต์ˆ˜ ๋ฌธ์žฅ์„ ์‹คํ–‰ ํ•  ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ์„ { } ์œผ๋กœ ๋ธ”๋ก์„ ๋งŒ๋“ ๋‹ค.

- ์—ฌ๋Ÿฌ ๊ฐ€์ง€์˜ ์กฐ๊ฑด๋ฌธ์„ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ์—๋Š” else if๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

- if ๋ฌธ์„ ์ค‘์ฒฉ์‹œ์ผœ ๋ณต์žกํ•œ ์กฐ๊ฑด๋ฌธ์˜ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

ex)

 

 

 

 

 

(์ฃผ์˜) ์‹ค์ˆ˜ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” ๋™๋“ฑ ๋น„๊ต(==)๋ฅผ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค ์‹ค์ˆ˜ ๊ฐ’์˜ ๋น„๊ต๋Š” epsilon(์—ก์‹ค๋ก )์„ ์ด์šฉํ•œ๋‹ค. epsilon(์—ก์‹ค๋ก )์ด๋ž€ ๋ถ€๋™์†Œ์ˆ˜์ ์˜ ์˜ค์ฐจ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋งค์šฐ ์ž‘์€ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค.

#include <iostream>
#include <cmath>      // for std::abs
#include <limits>     // for std::numeric_limits

bool areAlmostEqual(double a, double b) {
    return std::abs(a - b) < std::numeric_limits<double>::epsilon();  //์—ก์‹ค๋ก  ์‚ฌ์šฉ
}

int main() {
    double x = 0.1 + 0.2;
    double y = 0.3;

    if (areAlmostEqual(x, y)) {
        std::cout << "x and y are almost equal." << std::endl;
    } else {
        std::cout << "x and y are not equal." << std::endl;
    }

    return 0;
}

 

 

 

 

ex)

A && B  :  and ์กฐ๊ฑด๋ฌธ : A๋‚˜ B๊ฐ€ ํ•˜๋‚˜๋ผ๋„ false๋ฉด false๊ฐ€ ๋จ

A || B     :  or ์กฐ๊ฑด๋ฌธ    : A๊ฐ€ true์ด๋ฉด B๋Š” ํ‰๊ฐ€ํ•˜์ง€ ์•Š์•„๋„ true๊ฐ€ ๋จ

 

&&์™€ ||์„ ํ•œ ๋ฌธ์žฅ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด () ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

&&! : and not ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

์กฐ๊ฑด๋ฌธ๊ณผ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž

 

์กฐ๊ฑด๋ฌธ์€ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž (ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ) ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

 

 

 

Switch ๋ฌธ

 

- ๋™์ผํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ฅธ ๋ณต์ˆ˜๊ฐœ์˜ ๋ถ„๊ธฐ ์ƒํ™ฉ์„ ํ‘œํ˜„

- ๊ฐ case๋ฅผ ๋ธ”๋ก์œผ๋กœ ์ •์˜ํ•˜์—ฌ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์ •์˜

- case๋ฅผ ๋ณต์ˆ˜ ๊ฐœ ๋‚˜์—ดํ•˜์—ฌ ๋™์ผํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

- ๋งˆ์ง€๋ง‰์— ๋ฐ˜๋“œ์‹œ default๊ฐ€ ์ •์˜๋˜์–ด์•ผ ํ•œ๋‹ค.

- switch ๋ฌธ์€ ๋‚˜์—ดํ˜•์˜ ๋ณ€์ˆ˜(enum)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์‹ค์ˆ˜ ๊ฐ’ ๋˜๋Š” ๋ฒ”์œ„๊ฐ’์— ๋”ฐ๋ฅธ ๋ถ„๊ธฐ๋Š” ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.

 

 

ex)

 

 

- ์•„๋ž˜๋Š” ๋ชจ๋‘ ๋ถˆ๊ฐ€๋Šฅํ•œ ์˜ˆ์‹œ์ด๋‹ค.

 

 

 

 

 

for ๋ฌธ

- ์ผ์ • ํšŸ์ˆ˜์˜ ๋™์ž‘์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

- for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด(array)์„ ์ ‘๊ทผํ•  ๋•Œ๋Š” ์ธ๋ฑ์Šค ๋ณ€์ˆ˜๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์€ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

- vector ๋“ฑ๊ณผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์˜ ๊ฐ ์›์†Œ๋ฅผ for๋ฌธ(iterator=์ดํ„ฐ๋ ˆ์ดํ„ฐ=๋ฐ˜๋ณต๋ฌธ=ํฌ์ธํ„ฐ์™€ ๋น„์Šท)์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

- for๋ฌธ์—์„œ ์ฝค๋งˆ์‹์˜ ์‚ฌ์šฉ์€ ์ž์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค (๊ฐ€๋…์„ฑ, ๊ฐ„๊ฒฐํ•จ์„ ์œ„ํ•ด)

 

 

 

 

 

 

While ๋ฌธ

- ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ๋กœ ๋ฐ˜๋ณต์„ ํ‘œํ˜„

- ์กฐ๊ฑด์‹์ด ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต

 

 

 

 

do - While ๋ฌธ

- ์กฐ๊ฑด์ด ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต

- ์ตœ์†Œ 1ํšŒ ์ด์ƒ์€ ์ˆ˜ํ–‰(do)

 

 

 

 

 

continue

- ๋ฐ˜๋ณต๋ฌธ์—์„œ ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜์ง€ ์•Š์„ ๋•Œ๋Š” ์ดํ›„ ๋ฌธ์žฅ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ

 

 

 

 

break

- ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚  ๋•Œ ์“ฐ์ธ๋‹ค   ex) switch๋ฌธ์—์„œ switch๋ฌธ์„ ๋ฒ—์–ด๋‚  ๋•Œ 

 

 

 

 

 

return

- ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰์„ ์ข…๋ฃŒ

- return๋ฌธ์€ ํ•จ์ˆ˜์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์œผ๋กœ 1ํšŒ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค