'조건부 분기 - '고투' 클루게?

 
MQL4에서 조건부 분기/GoTo에 대한 'kluge'/'해결 방법'을 알아내려고 합니다.
 
클루 할 필요가 없습니다. 코드를 올바르게 작성하면 일반적으로 문제가 저절로 해결됩니다. 문제와 코드를 게시하십시오.
 int nu= 0 ; switch (nu){
   default :
   :
   if (condition) break ;
   :
}
 for ( int nu= 0 ; nu <= 0 ; nu++){
   :
   if (condition) break ;
   :
}
if (nu == 0 ) Print ( "break was taken" );
 
https://docs.mql4.com/basis/operators/if

https://docs.mql4.com/basis/operators/switch

 

나는 우리가 여기에서 다른 것을 언급하고 있다고 생각합니다. 조건을 충족하지 않는 항목을 건너뛰고 다음 순차 명령문 기능 등으로 넘어가는 것과는 반대로 프로그램 내의 모든 위치로 이동할 수 있기를 원합니다.

대부분의 현대 '구조화된' 프로그래밍 언어는 실제 악몽이 될 수 있으므로 GoTo 명령의 사용을 허용하지 않습니다. 실제로 '구조화된' 지정은 GoTo 문 사용을 허용하지 않는다는 사실을 나타냅니다. 그러나 신중하게 사용하면 시간이 매우 유용할 수 있습니다. 그러나 사용으로 인해 발생할 수 있는 문제는 '자신의 책임하에 사용하십시오!'라는 경고와 함께 사용해야 할 만큼 충분히 중요합니다.

또 다른 가능성은 필요할 때 '호출'할 수 있는 다른 외부 서브루틴, 모듈, 변수, 기능 등을 갖는 것입니다. 메인 프로그램 내에서? 또는 별도의 것. 일반적으로 이들은 특정 기능을 수행한 다음 결과 데이터를 다시 메인 프로그램에 반환하여 활용합니다. 이것들은 일부 현대 구조화된 프로그래밍 언어에서 발견되며 'GoTo' 명령을 사용하는 것만큼 위험하지 않습니다. 아마도 Include, Library 또는 .dll 파일의 사용이 이에 적합합니까? 변수, 데이터, 함수 등을 이러한 다른 파일에서 주 프로그램으로 다시 전달하는 방법을 아직 찾지 못했습니다. 실제로 이러한 방식으로 사용할 수 있다면? 어떤 경우에는 EA에서 전역 변수를 사용하여 이를 달성할 수 있습니다.

 
OneWithZachy님, 감사합니다.
 
FourX :
OneWithZachy님, 감사합니다.

정말로 ???,

나는 그때 당신의 스레드를 읽고, 당신의 평가를 보았고, klug가 무엇인지 전혀 모르므로 답장을 보내지 않습니다. :)

함수에 전달하려면 값을 전달하거나 매개변수로 전달할 수 있고, dll에 전달하려면 Patrick S Nouvion의 이 비디오 를 보고 싶을 수 있습니다.

더 알아보기 ?

질문이 더 있으면 답장을 보내주세요 :)

 

GoTo가 필요하지 않은 기능 으로 프로그래밍하는 경우 동의합니다.

 
onewithzachy :

정말로 ???,

나는 그때 당신의 스레드를 읽고, 당신의 평가를 보았고, klug가 무엇인지 전혀 모르므로 답장을 보내지 않습니다. :)

함수에 전달하려면 값을 전달하거나 매개변수로 전달할 수 있고, dll에 전달하려면 Patrick S Nouvion의 이 비디오 를 보고 싶을 수 있습니다.

더 알아보기 ?

질문이 더 있으면 답장을 보내주세요 :)

나는 아직까지 '통화' 기능에 대해 깊이 파고들지 않았습니다. 대부분의 경우 '점프'(! 'FTL'이 아니라(< 8) 및 'GoTo' EA 프로그램의 특정 위치를 순차적으로 제외하는 방법을 알고 싶습니다. 말씀하신 내용에서 저는 내가 하고 싶은 일에 효과가 있을지는 모르겠지만 가장 확실히 배우고 알게 된 것은 좋은 일입니다.

'Kluge'는 일반적으로 수행되지 않는 무언가를 달성하기 위해 다양한 것들에서 '함께 엮어낸' 것입니다. 이 경우 표준 기능, 용량 및 MQL4의 일부로 포함되지 않는 MQL4의 'GoTo' 기능/명령을 함께 만들려고 합니다. 언급한 바와 같이 그것들을 갖지 않는 데에는 그만한 이유가 있습니다. 이것은 많은 프로그래밍 언어의 표준 부분이었지만 많은 문제를 쉽게 일으킬 수 있기 때문에 내가 아는 한 (거의?) 모든 프로그래밍 언어에서 제거했습니다. 나는 C가 그것을 할 수 있다고 생각하지 않습니까? 그들은 COBOL에서 그것을 가져왔고 나는 그것들이 FORTRAN이나 Visual BASIC에 있다고 생각하지 않습니다.

적절한 사례: 수십 년 전에 나는 여러 개의 중첩 및 조건부 분기 'GoTo' 명령이 포함된 작은 5 또는 6줄 BASIC 프로그램(세그먼트)을 작성했습니다. '트레이서'를 켜놓고도 무슨 일인지 알 수가 없었어요! )< 8) 참고: 'Tracer On' 명령은 'TRON'이었습니다. 약어를 알고 계십니까? 이것은 월트 디즈니 스튜디오에서 만든 매우 엉성한 최초의 디지털 애니메이션 영화의 이름으로, 스토리 라인이 별로 없었습니다. (미시?) (가벼운?) 미로/매트릭스 내부에서 경주하는 것으로 추정되는 일부 하이퍼/라이트 스피드 오토바이. 리메이크 했다고 합니다. 하지만 1편이 너무 나빠서 잘 안보이더라구요. GI는 여전히 GO = GIGO

 
SDC :

GoTo가 필요하지 않은 기능으로 프로그래밍하는 경우 동의합니다.

안녕하세요 SDC입니다.

대부분의 프로그래밍과 마찬가지로 MQL4는 거의 모든 ' 함수 '로 일부 줄을 건너뛰는 것 외에는 진정한 'GoTo' 기능이 없습니다. 귀하가 '동의하는' 것은 무엇이며 이 검색의 맥락에서 무엇을 의미하고 언급하고 있습니까? 확장하고 설명하십시오. 논쟁적이지 않습니다. 뭔가 염두에 두신 것 같으며 그것이 무엇인지, 그리고 그것이 우리에게 어떻게 도움이 될 수 있는지 알고 싶습니다.

 
나는 BBC Basic 시절에 GOTO를 사용했습니다. . . 나는 심지어 약 7년 동안 정규직으로 BBC BASIC을 사용했습니다. . . 심지어 BBC Basic에도 GOSUB와 RETURN이 있어서 서브루틴( 함수 )을 사용할 수 있습니다. . . 왜 MQL4에서 GOTo와 유사한 것을 사용하고 싶습니까? 아마도 당신은 당신의 필요를 설명할 수 있습니까?