ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코드 트리] Trail 1 : 프로그래밍 기초 | Ch 4 : 조건문
    카테고리 없음 2026. 5. 21. 18:23

    Trail 1 프로그래밍 기초의 4챕터 조건문에 대해 공부하였습니다.

     

     

    위 이미지는 3챕터 조건문의 목록입니다.

    기본적인 조건문부터, 삼항 연산자, 비교 연산자, and or 기호, 중첩 조건문 등 

    조건에 필요한 비교 연산, and or 기호와 조건문을 간략화하는 삼항 연산 혹은 여러 조건에 대해 중첩 시켜 사용하는 중첩 조건문 등을 활용하는 방법을 알 수 있었습니다.

     

     

    가장 기본적인 조건문 형태입니다.

    if 문을 사용하고, () 괄호 안에 조건을 넣어서 참이면 { } 중괄호 안의 식을 실행, 거짓이면 해당 조건문을

    이탈하는 방식을 이용해서 기본적인 조건문은 동작합니다.

    여기서는 조건문의 { } 중괄호 없이 식을 작성했습니다.

     

     

    위 이미지는 삼항 연산자입니다.

    비교 구문 ? 참 : 거짓 방식으로 사용되는데, 위 이미지에서는 출력할 때 어느 값이 큰지에 따라 다르게 출력합니다.

     

    이를 이용하면 if 조건문을 사용하지 않더라도 어디에서든 사용이 가능합니다.

     

    이전에는 삼항 연산자도 중첩해서 사용을 해봤었는데

    중첩해서 사용하면 가독성이 매우 떨어져서, 자주 사용하지는 않았던 것 같습니다.

    그리고 저는 삼항 연산자를 되게 좋아하는데, 코드가 되게 간결해 보여서 좋아합니다.

    한줄에 깔끔하게 표현된다고 해야하나?

    또 조건문을 덕지덕지 붙이는 것 보다 그 조건을 최대한 줄여서 표현하고 싶어하기 때문에,

    삼항 연산자를 사용하다보면 조건이 어떤 때에 이렇게 줄여지는지? 그런 방식을 조금 많이 알 수 있습니다.

     

     

    위 이미지는 비교 연산자에 관해 알려줍니다.

    >= 크거나 같다 혹은 작거나 같다, > 크다 혹은 작다, == 같다, != 다르다

     

    이런 식인데, 이런 > 부등호가 사용하다보면 되게 헷갈립니다.

    어디에서 읽으면 크다인데 반대에서 읽으면 작다이니까,

    막 조건이 여러개가 겹치고 또 연산식에 붙고 그러면 읽기 되게 복잡해져서... 

     

    그래서 위 이미지는 결국 비교 연산자가 뭐가 있는지, 그리고 그것의 활용에 대해 알아보고 작성했습니다.

     

     

    위 이미지는 and 와 or 기호에 관한 문제입니다.

    and의 경우 &&, or의 경우 || 형태로 표현하는데,

    and를 사용하면 조건과 조건이 모두 참일 때를 의미하고

    or를 사용하면 조건 또는 조건 중 하나가 참일 때를 의미합니다.

     

    and or 부분의 기본 개념을 보며 안 사실이 하나 있는데, and와 or 중 and가 더 우선순위가 높다고 합니다.

    그래서 () 괄호를 사용하지 않아도 되는 경우가 있는데, 위 이미지도 && 에 괄호를 사용하지 않아도 되었습니다.

    해당 부분을 처음 알아서, 그동안 매번 괄호를 쳐서 && 부분을 묶어줬었는데

    굳이 하지 않아도 된다고 하니 신기했습니다.

    물론 가독성 부분 때문에 묶어두는게 더 이해하기는 편할 것 같습니다.

     

    위 문제는 a의 수학 점수가 b 수학 점수보다 높으면 무조건 A를, 같은 경우에는 a의 영어 점수가 b의 영어 점수보다 높으면 A를 출력하는 문제였습니다.

    따라서 aScore[0] > bScore[0] 형태로 먼저 a의 수학 점수가 큰지 체크했고

    만약 거짓이라면 || or 기호를 이용해서 a와 b의 수학 점수가 같은지,

    만약 같다면 && and 기호를 이용해서 영어 점수가 더 높은지 체크하는 방식으로 하나의 조건문에 여러 조건을 담아서 결과값을 출력하도록 작성했습니다.

     

     

    중첩 조건문입니다.

    위 문제는 중첩 조건문일 때 조건을 최대한 잘 묶어라... 라고 이야기합니다.

    즉, 조건문을 중첩하더라도 너무 많은 중첩은 가독성을 떨어뜨린다는 점을 이야기하는 것 같습니다.

     

    이게 되게 생각난 문제가 있습니다.

     

    위 이미지는 제가 작성한 중첩 조건문의 문제 중 하나입니다.

    해당 문제는 정말 조건을 못 읽었습니다..

    머리가 굴러가지 않아서, 그대로 작성했는데...

    해당 문제는 3명의 사람 중 2명이 감기가 있고 체온이 37도 이상인 경우라면 E를 아니라면 N을 출력하는 문제입니다.

     

    작성한 첫 조건문은 굉장히 좋습니다.

    한 명의 정보를 바탕으로 나머지 둘 중 한명의 정보만 있다면 원하는 값을 출력할 수 있습니다.

     

    하지만 그 후가 문제였습니다.

    처음 조건에서 A 가 정상인지 아닌지를 판별했습니다.

    그래서 조건에 맞지 않으니까 그 다음으로 넘어오는거겠죠?

    그러면 문제의 결과를 내기 위해서는 나머지 두 명이 모두 감기가 있고 37도 이상이어야 합니다.

     

    그러니 결국 2번째 3번째 조건문이 합쳐져야 했습니다.

    그냥  if ((c2 == 'Y' && t2 >= 37) && (c3 == 'Y' && t3 >= 37)) 해당 조건 하나면 충분했습니다.

    그러니... 그냥 단순하게 A는 정상이니 무조건 나머지 두 명은 비정상이어야 했습니다.

    하지만... 제대로 생각하지 못한 저의 코드는 위와 같이 말도 안되게 길어졌습니다..

    이걸 보면 결국 아까 보았던, 중첩 조건문에서는 조건을 최대한 잘 묶어라.. 라는 내용이 절실하게 와닿는 부분입니다.

     

     

    조건문을 공부하면서 생각한 부분은 조건을 작성할 때 잘 해야한다는 점입니다.

    문제를 보고, 해당 문제의 조건을 그냥 쓰지말고 어떤 부분은 겹쳐지는지 어떤 부분은 그냥 써야하는지

    이런 부분들을 잘 보아야 깔끔한 코드가 나오게됩니다.

    또, 그렇다고 너무 붙여도 깔끔하긴 한데, 읽기 힘든 코드가 나올 수 있으니 해당 부분을 잘 인지하면서

    작성해야할 것 같다고 생각했습니다.

     

    문제가 조건이 있다보니 조건을 어떻게 겹칠지, 이렇게 작성하는게 가장 나은 방법인지...

    이런 저런 부분을 생각하다보니 제한시간이 있는 문제도 더 들여다보고 오히려 조건이 겹쳐지지 않으니까

    이게 맞는건지 이렇게 써도 되는건지..

    막 이런저런 생각이 너무 많이 들었습니다.

    나중에 가서는 결국 공부니까 이렇게도 써보고 저렇게도 써보자라는 생각으로 막 써봤던 것 같습니다.

     

    특히 중첩 조건문 문제를 풀면서 중첩 조건문을 사용하지 않고 그냥 풀어버렸어서... 

    다시 중첩 조건문으로 생각해서 풀어보기도 하면서 재미있게 문제를 풀게 된 것 같습니다.

     

    좋은 공부가 되었던 것 같습니다. 

Designed by Tistory.