2016-11-04 2 views
1

이것은 간단해야하지만이 코드 블록은 작동하지 않는 것처럼 보입니다.if else 블록에서 여러 조건 확인

현재 race_position이 총 수와 같지 않거나 카운트보다 크지 않거나 0이 아닌지 확인하고 확인해야합니다. 그 중 하나 인 경우 루프에서 벗어나고 싶습니다.

나는 심지어 Visual Studio 디버거에서이를 처리했으며 race_position이 0 일 때도 0이 아니며 루프에서 벗어난 적이없는 것처럼 보였다.

이 방법을 사용하면 효과가 있습니까?

감사합니다!

if (race_position != race_team.Count || !(race_position > events.Count) || race_position != 0) 
{ 
    next_position = (race_position + 1); 
} 
else 
{ 
    break; 
} 

답변

5

당신은 하나에 해당하는 경우, 그 블록이 실행됩니다 의미 OR ING (||) 함께 조건이다. AND (&&)을 모두 함께 사용해야하므로 모두 true이어야합니다. 그렇지 않으면 루프가 종료됩니다.

race_position이 0 일 경우 race_position != race_team.Counttrue이므로 루프가 계속됩니다.

+0

오. 그래서 나는 && 대신에 &&를 사용한다. 그 밖의 모든 것들을 똑같이 유지 하시겠습니까? 감사! – SkyeBoniwell

+0

네, 그게 효과가 있습니다. 논리는 단순화 될 수도 있지만 증상 때문입니다. – Jonesopolis

+0

궁금한 점이 있다면 논리가 어떻게 단순화 될 수 있습니까? 감사! – SkyeBoniwell

2
if(!(race_position < race_team.Count && race_position > 0)) 
    break; 

next_position = (race_position + 1); 
관련 문제