묻공러
[C++ Tips] If 중첩문의 가독성 문제
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (535) N
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • C# (20)
      • [루키스] C# (9)
      • [루키스] 자료구조 (3)
      • [루키스] 실전 문법 (8)
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 - 언리얼 (123)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
    • 게임 엔진 - 유니티 (28) N
      • [최적화] 유니티 (4)
      • [루키스] 유니티 (24) N
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
C++/[노코프] Tips

[C++ Tips] If 중첩문의 가독성 문제

2024. 11. 13. 09:48

If의 중첩이 쌓이면 쌓일수록

가독성이 떨어진다

 

이를 해결하기 위해서는

Early-Return을 사용하는 것이 좋다

https://motivelessstudy.tistory.com/317

 

[C++ Tips] Early Return

GPU 프로그래밍에서는 Early Return이 필수이다 CUDA의 경우에 하나의 warp에 16개의 thread가 동시에 연산을 처리한다 그중 한 개의 thread가 다른 작업을 한다면 나머지 thread들은 wait 상태로 있어야 한다

motivelessstudy.tistory.com

 

또한, 다른 방법으로는

do while(false) 문을 활용하는 방법과 check, ensure 등을 활용하는 방법이 있다

 

- do while(false)문

do
{
    if (조건1)
    {
        break;
    }
    
    if (조건2)
    {
        break;
    }
    
    if (조건3)
    {
        break;
    }
    
    ...

} while (false)

 

- check, ensure

다만, 해당 조건을 통과하지 못하면

Assert가 걸리기 때문에

반드시 예외가 없어야 하는 경우에서만 사용해야 한다

// 언리얼에서 일반적인 방식
MyGameMode* MyMode = Cast<MyGameMode>(UGameplayStatics::GetGameMode(GetWorld()));
if(IsValid(MyMode))
{
	...
}

// ensureMsgf를 통해 if문 생략
ensureMsgf(GGameMode, TEXT("Unexpected null game mode! (SomeState: %d)"), SomeState))
...
저작자표시 비영리 변경금지 (새창열림)

'C++ > [노코프] Tips' 카테고리의 다른 글

[C++ Tips] Data oriented Programming  (0) 2024.04.08
[C++ Tips] Early Return  (0) 2024.04.08
[C++ Tips] Function Overloading  (0) 2024.04.08
[C++ Tips] 싱글톤  (0) 2024.04.07
[C++ Tips] static  (0) 2024.04.07
'C++/[노코프] Tips' 카테고리의 다른 글
  • [C++ Tips] Data oriented Programming
  • [C++ Tips] Early Return
  • [C++ Tips] Function Overloading
  • [C++ Tips] 싱글톤
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.