나는 코드에 갇혀있다!C# Do-While 콜백
는 내가 할 일 -While 루프 내가 스위치-사례를 가지고 각각의 경우이 같은 그렇지 조건 경우이 안에있다 : 나는 다시 시도 버튼을 누른 후 다음
문제 입니다 (IF-그렇지 않은 상태에서) Do Loop의 중간에서 돌아가서 확인하기 위해 다시 실행하고 싶습니다. 어떻게해야하는지 잘 모르겠습니다. 도움이 될 것입니다.
나는 코드에 갇혀있다!C# Do-While 콜백
는 내가 할 일 -While 루프 내가 스위치-사례를 가지고 각각의 경우이 같은 그렇지 조건 경우이 안에있다 : 나는 다시 시도 버튼을 누른 후 다음
문제 입니다 (IF-그렇지 않은 상태에서) Do Loop의 중간에서 돌아가서 확인하기 위해 다시 실행하고 싶습니다. 어떻게해야하는지 잘 모르겠습니다. 도움이 될 것입니다.
스위치 케이스가 루프 본문 하단에있는 경우 continue
을 호출하면 루프가 시작부터 반복됩니다.
루프의 중간에서 시작해야하고 시작이 아니라면, 내가 생각할 수있는 유일한 방법은 다른 루프 본문에서 중간을 래핑하는 것입니다. 이제 continue
이 내부 루프에 적용되며 원하는 것을 얻을 수 있습니다. 당신이 거대한 루프 스위치 성명에서이 같은 코드를 구성 할 것입니다 왜
다른 옵션, 당신은 goto을 사용할 수 없습니다 경우
하지만"다른 옵션이 없다면 고토를 사용할 수 있습니다."... 그러나 이것은 자신과 타인을 해칠 수 있음을 명심하십시오 (http://www.u.ar.is.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful). html) – Jeff
beware the consequences은 난 정말 모르겠어요. 나를 위해, 아마 그걸 깨뜨릴거야. 따라하기가 더 쉬울 것입니다. 그러나 아마 당신에게는 이유가 있습니다.
가능한 경우 내부 루프를 만들고 재 시도되지 않은 값이 반환 될 때까지 해당 루프를 계속 실행하십시오.
실제로 작동하지 않는 경우 goto
을 사용하는 것이 아닙니다. 나는 많은 사람들에게 금기시되고 있지만 제 목표는 명확한 코드를 작성하는 것입니다. 그리고 당신이 무엇을하고 있고 가장 명확한 코드로 결과가 goto
인지 안다면, 나는 그것에 대해 말합니다.
'goto'는 남용하기 쉽지만 명확하고 이해하기 쉬운 방법으로도 쉽게 사용할 수 있습니다. – dreamlax
맞아요, 개발자는 더 고급 구조라는 측면에서 매우 편안하게 생각할 때까지는 개발자가 '고토'를 피하는 것이 좋습니다. 그러나 일단 개발자가이 점에 도달하면 결코 'goto'를 사용하지 않는 것이 바보 같다고 생각합니다. –
가독성과 유지 관리 관점에서 코드를 함수로 분할하고 싶을 것입니다. 이것을 시도해 보시기 바랍니다 :
do
{
if(eErrorCode!=0)
{
if(GetResult(eErrorCode) == "Break")
break;
}
}
private string GetResult(eErrorCode)
{
switch(eErrorCode)
...
}
'continue;'...... –
게시물에 표준 영어 대문자와 구두점을 사용하십시오. – JLRishe