티스토리 뷰

나는 개인적으로 다음과 같이 할 것입니다.

bool valid = read("Name")
          && read("Age")
                    && read("Sex")
                              && read("DoB");
                              

게시 한 첫 번째 코드와 동일합니다. C ++의 && 연산자는 왼쪽에서 오른쪽으로 용어를 평가하고 잘못된 결과가 발생하면 중지합니다. 이것은 컴파일러 고유의 해킹이 아니지만 C, C ++ 및 C를 기반으로하거나 C에서 영감을 얻은 다른 많은 프로그래밍 언어에서 잘 정의 된 동작입니다.

이것은 ||에서도 작동하지만 거짓 값이 아닌 참 값이 발견되면 중지됩니다.

-------------------

예외는 제어 흐름의 메커니즘으로 사용하기위한 것이 아니기 때문에 이러한 방식으로 예외를 사용하지 않을 것입니다. 말 그대로 예외적 인 상황 을 포착하기 위해 존재하며 설명하는 경우처럼 합리적으로 예상되는 입력이 아닙니다.

플래그를 사용하든 if 체인을 사용하든 다른 패턴을 사용하여 코딩하거나 다른 답변에서 제안한 부울 식과 함께 명령문을 연결하는 몇 가지 옵션이 있습니다 (내가 선호하는 방법이기도합니다). 모두 장단점이 있지만 예외 인 IMO는 확실히이를 수행하는 방법이 아닙니다.

-------------------

첫 번째 접근 방식을 사용할 것이라고 생각하지만 조금 다르게 구성합니다.

bool valid = read("Name") && read("Age") && read("Sex") && read("DoB");

적어도 내가 귀하의 요구 사항을 올바르게 이해한다면 위의 어느 것보다이를 충족하는 더 간단한 방법 인 것 같습니다.



출처
https://stackoverflow.com/questions/1905079
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31