문제

다음과 같은 숙어:

1)

variable = value1
if condition
  variable = value2

2)

variable = value2
if not condition
  variable = value1

3)

if condition
  variable = value2
else
  variable = value1

4)

if not condition
  variable = value1
else
  variable = value2

는 당신이 선호하는,그리고 왜?

우리 가정의 가장 일반적인 경로를 실행하는 것의 condition 는 거짓입니다.

저는 배우는 경향이 있는 쪽으로 사용하는 1)지만,나는지 정확히 확인 내가 좋아하는 이유니다.더 보기

참고:다음 예제가 될 수 있습니다 간단하고 따라서 가능하게 더 읽을 수 있지만 모든 언어 등을 제공합 구문,그리고 그들은 적합하지 않을 확장하기위한 변수를 할당을 포함 하나 이상의 문서에서 미래입니다.

variable = condition ? value2 : value1
...
variable = value2 if condition else value1
도움이 되었습니까?

해결책

이론적으로는 변수에 값을 두 번 할당하지 않아도 #3을 선호합니다. 현실 세계에서는 위의 네 가지 중 하나를 사용하여 더 읽기 쉽거나 내 의도를 더 명확하게 표현할 것입니다.

다른 팁

방법 3은 더 간결하고 논리적 단위이기 때문에 선호합니다. 값을 한 번만 설정하고 블록으로 이동할 수 있으며, 오류가 발생하기 쉬운 것이 아닙니다 (이 경우, eSp. setting-to-value1이고 value2를 확인하고옵니다. 다른 진술로 분리됩니다)

3) 당신이 일어나고 싶은 일의 가장 분명한 표현입니다. 나는 다른 모든 사람들이 변수에서 어떤 값이 끝날지 결정하기 위해 여분의 생각이 필요하다고 생각합니다.

실제로, 나는 그것을 지원하는 언어를 사용하고 있다면, 나는 Ternary Operator (? :)를 사용할 것입니다. 나는 가능할 때마다 필수적으로 기능적 또는 선언적 스타일로 글을 쓰는 것을 선호합니다.

내가 사용하는 경향이 있#1 많이 자신입니다. if condition 읽는 것보다 쉽 if !condition, 는 경우에 특히 acidentally 놓치'!', 어야 내 마음이야.

가장 코딩 I do C#지만,여전히는 경향이 있을 terniary 연산자,지 않으면 나와 함께 작업(주)지역 변수.라인을 얻을하는 경향이 길고 매우 신속하게 원자하는 경우에 당신은 세 가지 레이어 깊은 일부 구조는 빠르게 감소시킨 가독성을 다시합니다.

참고 : 다음 예제는 더 간단하고 읽을 수있을 수 있습니다. 그러나 모든 언어가 그러한 구문을 제공하는 것은 아닙니다.

이것은 그러한 구문을 제공하는 언어로 사용하지 않는다는 주장이 아닙니다. 또한, 여기에는 마지막 수후 후 모든 주류 언어가 포함됩니다.

그리고 그들은 향후에 하나 이상의 진술을 포함하도록 변수 할당을 확장하는 데 적합하지 않습니다.

이것은 사실입니다. 그러나 종종 그러한 확장은 절대 일어나지 않을 것이라고 확신합니다. condition 항상 가능한 두 가지 사례 중 하나를 산출합니다.

그러한 상황에서 나는 구문 혼란을 줄이고 표현성을 향상시키기 때문에 진술 변형보다 표현 변형을 항상 선호합니다. 다른 상황에서는 함께가는 경향이 있습니다 switch 앞에서 언급 한 진술 - 언어 가이 사용을 허용하는 경우. 그렇지 않다면, 일반적인 낙상 if.

switch 성명서도 작동합니다. 단순하고 2 ~ 3 개 이상의 옵션이라면 제가 사용하는 것입니다.

상태가 발생하지 않을 수있는 상황에서. 나는 1 또는 2와 함께 갈 것입니다. 그렇지 않으면 코드가 원하는대로 기준으로 단지 하나입니다. (즉, 나는 순양함에 동의합니다)

나는 그렇지 않으면 사용하는 경향이있다 ... 반환.

그러나 그것은 당신이 변수를 반환하려는 경우입니다. 실격제를 먼저 벗어나게하는 것은 더 읽기 쉬운 경향이 있습니다. 그것은 실제로 진술의 맥락과 언어에 달려 있습니다. 사례 진술은 대부분 더 잘 작동하고 대부분의 시간을 읽을 수 있지만, 성능은 VB에 따라 고통을 겪으므로 해당 특정 경우 일련의 IF/Else 진술이 더 의미가 있습니다.

나를위한 방법 1 또는 방법 3. 방법 1은 추가 범위 입구/종료를 피할 수 있지만 방법 3은 추가 할당을 피합니다. 조건 논리를 가능한 한 간단하게 유지하려고 시도하기 때문에 방법 2를 피하는 경향이 있습니다 (이 경우!이 경우!없이 방법 1없이 다시 작성할 수 있으므로 외부입니다).

그것은 내가 테스트하는 조건에 따라 다릅니다.

오류 플래그 조건 인 경우 1) 오류 플래그를 설정하여 오류를 포착 한 다음 조건이 성공하면 오류 플래그를 지우십시오. 그렇게하면 오류 조건이 누락 될 가능성이 없습니다.

내가 사용하는 다른 모든 것에 대해 3)

코드를 읽을 때 논리가 아닌 논리는 혼란에 추가됩니다. 내 머리에 잘 말할 수 없습니다.

변수에 자연스러운 기본값이 있으면 #1로 이동합니다. 두 값 중 하나가 기본값에 적합한 경우 #2로 이동합니다.

때에 따라 다르지. 나는 Ternary 운영자를 좋아하지만 때로는 'if'문을 사용하면 더 명확합니다. 당신이 선택한 네 가지 대안 중 어떤 대안이 컨텍스트에 따라 다르지만, 나는 코드의 기능을 명확하게 만드는 것이 아니며 이는 상황마다 다릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top