๐Ÿ’˜ C++/ํ๋ฆ„์ œ์–ด

if ์กฐ๊ฑด๋ฌธ if conditional statement

Hyonii 2022. 1. 30. 22:57

if ์กฐ๊ฑด๋ฌธ (if conditional statement)

C++์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์กฐ๊ฑด๋ฌธ์€ if ๋ช…๋ น๋ฌธ์ด๋‹ค

if(expression) //conditional expression
    statement

or

if(expression) //conditional expression
    statement
else
    statement2

์œ„์—์„œ 'expression'์„ ์กฐ๊ฑด์‹(conditional expression)์ด๋ผ๊ณ  ํ•œ๋‹ค.

์กฐ๊ฑด์‹์ด true (0์ด ์•„๋‹˜)๋กœ ํ‰๊ฐ€๋˜๋ฉด if๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.

ํ‘œํ˜„์‹์ด false๋กœ ํ‰๊ฐ€๋˜๋ฉด else ๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค. ( else ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ)

 

if ๋ฌธ ๋ฐ‘์— indenting(๋“ค์—ฌ์“ฐ๊ธฐ)์ด ๋˜์–ด์žˆ๋Š”๋ฐ ์ด๊ฑด ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š”๊ฑฐ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ ๋ฌธ์žฅ์„ ์“ฐ๊ธฐ ๋ณด๋‹ค๋Š” { } ์ค‘๊ด„ํ˜ธ๋กœ ์˜์—ญ์„ ์‹ธ์ฃผ๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค.

์•”์‹œ์  ๋ธ”๋ก (Implicit blocks)

if ๋ฌธ ๋˜๋Š” else ๋ฌธ์˜ ๋ช…๋ น๋ฌธ ๋ถ€๋ถ„์— ๋ธ”๋ก์„ ์„ ์–ธํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•”์‹œ์ ์œผ๋กœ ์„ ์–ธํ•œ๋‹ค.

if(expression)
    statement
else
    statement2

์‹ค์ œ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

if(expression)
{
    statement
}
else
{
    statement2
}

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

#include <iostream>

int main()
{
    if(1)
        int x = 5;
    else
        int x = 6;
    
    std::cout << x;
    
    return 0;
}

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‹๋ณ„์ž x๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š๋Š”๋‹ค.

์œ„์˜ ์˜ˆ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

#include <iostream>

int main()
{
    if(1)
        {
            int x = 5;
        }//๋ณ€์ˆ˜ x๋Š” ์—ฌ๊ธฐ์„œ ์†Œ๋ฉธํ•œ๋‹ค
    else
        {
            int x = 6;
        }//๋ณ€์ˆ˜ x ๋Š” ์—ฌ๊ธฐ์„œ ์†Œ๋ฉธํ•œ๋‹ค
    
    std::cout << x; //x๋Š” ์—ฌ๊ธฐ์„œ ์ •์˜๋˜์ง€ ์•Š๋Š”๋‹ค.
    
    return 0;
}

์œ„ ์˜ˆ์ œ์—์„œ ๋ณ€์ˆ˜ x ๋Š” ๋ธ”๋ก ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๊ณ , ๋ธ”๋ก์˜ ๋์—์„œ ์†Œ๋ฉธํ•œ๋‹ค.

std::cout ํ–‰์— ๋„๋‹ฌํ•  ๋•Œ ๊นŒ์ง€ x๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

if๋ฌธ ์—ฐ๊ฒฐํ•˜๊ธฐ

if-else ๋ฌธ์„ ํ•จ๊ป˜ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์œ„ ์ฝ”๋“œ๋Š” ์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™๊ฒŒ ์‹คํ–‰๋œ๋‹ค.

์ฒซ์งธ, x > 10์„ ํ‰๊ฐ€ํ•œ๋‹ค.

true ์ด๋ฉด "x is greater thaan 10"์ด ์ถœ๋ ฅ๋˜๊ณ  ์™„๋ฃŒ๋œ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด else๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.

ํ•ด๋‹น else๋ฌธ์€ ์ค‘์ฒฉ๋œ if ๋ฌธ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

์ค‘์ฒฉ๋œ if๋ฌธ ์•ˆ์—์„œ x < 10์„ ํ‰๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น๋ฌธ ์‹คํ–‰

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋ก์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

if ๋ฌธ ๋’ค์— ์˜ค๋Š” ๋ฌธ์žฅ์ด ํ•˜๋‚˜ ์ผ ๊ฒฝ์šฐ์—๋Š” ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ

๋‘๊ฐœ์ด์ƒ ๋„ฃ์„ ๋•Œ์—๋Š” ๋‘ ์ค„์ด ๋™์‹œ์— ์‹คํ–‰๋˜๊ฒŒ ํ•˜๋ ค๋ฉด ๊ผญ ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

ํŒŒ์ด์ฌ์—์„œ๋Š” ๋„์–ด์“ฐ๊ธฐ๋กœ ๋ฌถ์ง€๋งŒ C++์—์„œ๋Š” ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์ค€๋‹ค.

 

์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ˆ˜ ์˜ˆ์ œ

bool ๊ณ„์‚ฐ์„ ํ•  ๋•Œ

if ๋ฌธ ๊ด„ํ˜ธ์•ˆ์— ๋‚ด๋ถ€์ ์œผ๋กœ 0 ์ด ์•„๋‹ˆ๋ฉด true ์ด๋‹ค.0์ด๋ฉด false ์ด๋‹ค.

 

if(1)์ด๋ฉด ํ•ญ์ƒ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋Š” ์˜๋ฏธ

while ๋ฌธ์—์„œ๋„ ๋น„์Šทํ•œ ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

if ๋ฌธ ์•ˆ์— int x = 5; ๋ผ๊ณ  ์„ ์–ธ์€ ํ•˜๊ณ  ๋„ฃ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ๋ธ”๋ก{}์ด ์•ˆ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์—

์ „์—ญ์ธ๊ฐ€ ๋ณด๋‹ค ํ˜น์€ main ํ•จ์ˆ˜์•ˆ์—์„œ๋Š” ์ „๋ถ€ ์ž‘๋™ํ•˜๋Š”๊ฐ€ ๋ณด๋‹ค ์ฐฉ๊ฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์–˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ { }๊ฐ€ ์žˆ๋‹ค๊ณ , if ๋ฌธ ๋ฐ‘์— ๊ด„ํ˜ธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.

 

int x๋Š” ๊ด„ํ˜ธ ๋ฐ‘์œผ๋กœ ๋ฒ—์–ด๋‚˜๋Š” ์ˆœ๊ฐ„ ์‚ฌ๋ผ์ง„๋‹ค. ์•„๋ฌด์ผ๋„ ์•ˆํ•œ๊ฒƒ๊ณผ ๊ฐ™๋‹ค

๋ฌผ๋ก  if ๋ฌธ ์•„๋ž˜ ๋ธ”๋ก์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜์ง€ ๋ง๋ผ๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค.

์•ˆ์—์„œ ๋ณต์žกํ•œ ์ผ์„ ํ•˜๊ฒŒ ๋  ๋•Œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด ๋ณ€์ˆ˜์˜ scope ์™€ duration์ด if๋ฌธ ๋ฐ‘์˜ ๋ธ”๋ก์„ ๋ฒ—์–ด ๋‚˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

if๋ฌธ ์ค‘์ฒฉ (Nesting if statements)

if๋ฌธ์„ ๋‹ค๋ฅธ if ๋ฌธ ๋‚ด์— ์ค‘์ฒฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ์—๋Š” x๊ฐ€ 10 ์ด์ƒ์ด๊ณ 

10์ด์ƒ์ธ๊ฒƒ ์ค‘์—์„œ x๊ฐ€ 20์ด์ƒ์ด๋‹ˆ๊นŒ

10์ด์ƒ์ด๊ณ  20๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์ด else ์—์„œ ์ถœ๋ ฅ์ด ๋œ๋‹ค.

 

else๊ฐ€ 10์ด์ƒ์ด ์•„๋‹๋•Œ๋กœ ๊ฑธ๋ฆฌ๊ฒŒ ํ•˜๊ณ ์‹ถ์„๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ๋กœ ๋ง‰์•„์•ผํ•œ๋‹ค.

 

์œ„ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ๋Š” ์„œ๋กœ ์™„์ „ ๋‹ค๋ฅด๋‹ˆ๊นŒ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

๋ฌธ๋ฒ•์ƒ else๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด์— ์žˆ๋Š” if ์— ๋ถ™๊ฒŒ ๋˜์–ด์žˆ๋‹ค.

๊ทธ๋ž˜์„œ Indenting์ด ์—‰๋ง์ธ ์ƒํƒœ์—์„œ

์ฝ”๋”ฉ์„ ์šฐ์—ฐํžˆ ์ด๋ ‡๊ฒŒ ํ–ˆ๋”๋ผ๋„

 

์ด else๋Š” ํ‘œ์‹œ๋œ if ๋ฌธ์— ๋ถ™์€ ๊ฑธ๋กœ ์ž‘๋™์„ ํ•œ๋‹ค.

์ธ๋ดํŒ…์ด ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ๋Š”๊ฒƒ์€ ์ž˜๋ชป๋˜์–ด์žˆ๋Š” ๊ฑฐ๋‹ˆ๊นŒ

 

์ ์–ด๋„ ์ด๋ ‡๊ฒŒ ์ธ๋ดํŒ… ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค
์ด๋ ‡๊ฒŒ {} ์ค‘๊ด„ํ˜ธ๋กœ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹๋‹ค

if๋ฌธ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

๋˜ํ•œ, if๋ฌธ์—์„œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ํ•จ๊ป˜ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


if๋ฌธ์˜ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

์ •์ˆ˜ ๋‘๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ๋‘˜ ์ค‘์— ์ž‘์€ ๊ฒƒ์„ ์ž…๋ ฅํ•˜๋Š” ์ž…๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

 

์ด ์˜ˆ์ œ๋ฅผ ์ค„์—ฌ๋ณด๋ฉด
์ด๋ ‡๊ฒŒ ์ค„์ผ ์ˆ˜๋„ ์žˆ๊ณ 
์ด๋ ‡๊ฒŒ ์‚ผํ•ญ์—ฐ์‚ฐ์ž(์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž)๋กœ ์ค„์ผ ์ˆ˜ ๋„ ์žˆ๋‹ค.


if๋ฌธ์— null statement ๋„ฃ๊ธฐ

์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ์‹ค์ˆ˜ํ•˜๊ธฐ ์ข‹์€ ๊ฒƒ์€ null statement๋ผ๊ณ  ํ•ด์„œ

์•„์˜ˆ ์‹คํ–‰์‹œํ‚ฌ ๋‚ด์šฉ์„ ๋„ฃ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

 

์ด ์˜ˆ์ œ๋Š”
์ด๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

null statement == ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ

 

๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ์ƒํ™ฉ์„ ์˜ˆ๋กœ ๋“ค์ž๋ฉด

 

์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด if ๋ฌธ์— ์ „ํ˜€ ์ƒ๊ด€์—†์ด x=1;์ด ํ•ญ์ƒ ์‹คํ–‰๋œ๋‹ค.
null statement๋ฅผ ์“ธ ๋•Œ๋Š” ์ฃผ์„์„ ๋‹ฌ์•„์„œ ์™œ ์ด๋ ‡๊ฒŒ ์จ๋†“์•˜๋Š”์ง€ ์˜๋„๋ฅผ ํ‘œํ˜„ํ—ˆ๋Š”๊ฒƒ์ด ์ข‹๋‹ค.
์ด๋ ‡๊ฒŒ ๋˜๋ฉด x=0; if(x)๊ฐ€ ๋˜์–ด์„œ
ํ•ญ์ƒ true์ธ if๋ฌธ์ด ๋œ๋‹ค.
์ตœ๊ทผ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋Š” ์ด๋ ‡๊ฒŒ ๊ฒฝ๊ณ ํ•ด์ค€๋‹ค.
์ด๋Ÿฐ ๊ฒฝ์šฐ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค.

if๋ฌธ์—์„œ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

if ๋ฌธ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ข…๋ฃŒ ์‹œํ‚ฌ ๋•Œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.