2013-09-05 6 views
3

while 루프를 사용하는 앱을 작성했습니다. 그리고 제 코드에서는 break을 특정 조건에 넣는 것을 잊었습니다. 디버거에서 응용 프로그램을 실행하고 있습니다. 이제 루프에서 종료해야합니다. 어떤 사람들은 그것을 멈추고 그 중단 선을 넣을 수 있다고 말할 수 있습니다. 그러나 나는이 시점에서 그럴 수 없습니다. 코드를 변경하고 다시 실행하는 데 오랜 시간이 걸립니다. 보기 창이나 직접 실행 창에서이 작업을 중지 할 수 있습니까? 여기시계 또는 직접 창에서 무한 루프를 깨기

내가 가지고 루프의 예는 다음과 같습니다 도움을

while(true) 
{ 
    //do the work 
    if(something happens) 
     break; //I missed this part! 
} 
//some other things 

감사합니다!

답변

1

이 같은 false에 변수의 값을 변경하고 루프를 종료, 당신은 디버거를 사용할 수있는 대신 true의 변수를 사용하도록 while 루프를 다시 작성해야 :

bool doWork = true; 

while(doWork) 
{ 
    // Do looping logic here 
} 

이제 디버거에서 루프를 중단하고 doWork 변수를 false으로 업데이트하여 루프를 중단 할 수 있습니다.

+1

제안 해 주셔서 감사합니다. 나는 programm가 지금 달리고있다라고 말했다. 디버거를 중지하고 코드를 변경하면 많은 문제가 발생합니다. 그래서 시계 또는 직접 실행 창에서 중지 할 수 있는지 묻는 것입니다. – Dilshod

+1

어쨌든 프로그램을 제어 할 수 없으므로 중지하고 논리에서 문제를 해결하고 싶지 않은 이유는 무엇입니까? –

+1

루프를 깰 수 있으면 나머지 코드가 작업을 끝내게됩니다. 그렇다면 그게 훨씬 더 많은 일을 일으키지 않습니다. – Dilshod

0

칼 .. 특정 지침에 for 루프에서 같은 .. 여기 올 수 있습니다 :

(VS2010에서 수행 할 수 있습니다 단지 마우스 오버 isTrue에,에 오른쪽 클릭하면 당신이 그것을 볼 때 '거짓' 툴팁을 입력 한 다음 편집 값을 클릭하고 false 대신 true를 입력하십시오.)

bool isTrue = true; 
for (; isTrue ;) 
{ 
     Thread.Sleep(1000); 
} 
+0

답변 주셔서 감사합니다.하지만 제 경우에는 아무 것도 할 수 없습니다. 내 예를 보아라. 그것은 오랜 시간 동안 실행되었고 그 시간에 그것을 멈출 수 없었고 당신의 모범과 같은 것을했습니다. – Dilshod

+0

즉각적인 창에서 break를 사용할 수 없었습니다. 왜냐하면 런타임에 즉각적으로 사용할 때 어떤 이유로 무시됩니다.하지만 루프에서 조건의 값을 변경하면 무시할 수 있습니다. 그런 다음 ' 휴식 ', 난 그냥 다시 테스트하고 아무런 문제가 없었다. 편집 : 나는 당신이 루프의 조건을 변경하지 말았어야, 당신은 단지 더 이상 true로 평가하는 조건을 일으키는 값을 변경 .. – Chris

+0

나는 당신이 설명하려고 이해합니다. 내 모범을 보았 니? 정적으로 키워드 "true"를 사용하고 있습니다. 변수가 아닙니다. 런타임시 true에서 false로 변경하는 방법이 있습니까? 나는 단지 내 프로그램을 멈추고 내가 원하는대로 언제든지 제안하고 깨뜨릴 수있다. 그러나 나는 그렇게하고 싶지 않았다. – Dilshod