[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 721

 
Abzasc :

센스 - 변수를 생성하는 것이 아니라 많은 조건과 카운터입니다.




그러면 언어의 약어를 사용하지 않고 올바르게 작성하는 것이 합리적입니다.

 int a;
for (a= 0 ;a< 8 ;a++){
//здесь что то делаем
}
for (a= 0 ;a< 8 ;a++){
//делаем что нибудь другое
}
 
Abzasc :

센스 - 변수를 생성하는 것이 아니라 많은 조건과 카운터입니다.

글쎄, 컴파일러는 당신이 그런 일을 할 수있게 해줍니다 ...

 //+------------------------------------------------------------------+
int start()
  {
  bool flag;
  
   if (flag){
      for ( int a = 0 ; a < 10 ;a++){
         Print ( "a = " , a);
      }
   } else {
      for (a = 10 ; a > 0 ;a--){
         Print ( "a = " , a);
      }
   }
  }
//+------------------------------------------------------------------+
기본 플래그는 False 로 설정되어 있으므로 변수 a 가 선언된 첫 번째 for 루프는 실행되지 않습니다. 이는 else 분기에서 동일한 "선언되지 않은" 변수를 사용하는 것을 방지하지 않습니다. :)
 
Abzasc :

조건

우리는 여기서 뭔가를 하고 있다

그렇지 않으면 다른 조건

다른 일을 하다

센스 - 변수를 생성하는 것이 아니라 많은 조건과 카운터입니다.

이것은 변수를 다시 초기화할 필요가 없습니다. 작성한 내용에 따라 모든 작업을 수행하고 변수는 재초기화 없이 논리적 분기의 올바른 위치에서 사용됩니다. 일단 발표하고 자신과 전 인류의 이익을 위해 사용하십시오... :) 가장 중요한 것은 어디에, 왜 사용하는지 헤매지 않는 것입니다...
 
ToLik_SRGV :

따라서 변수가 선언된 첫 번째 for 루프는 실행되지 않습니다.

루프는 항상 실행되어야 합니다.
 
IgorM :


그러면 언어의 약어를 사용하지 않고 올바르게 작성하는 것이 합리적입니다.

전체 문제는 {}가 없다는 것입니까? 아니면 무엇입니까? 고맙습니다!
 
artmedia70 :
이것은 변수를 다시 초기화할 필요가 없습니다. 작성한 내용에 따라 모든 작업을 수행하고 변수는 재초기화 없이 논리적 분기의 올바른 위치에서 사용됩니다. 일단 발표하고 자신과 전 인류의 이익을 위해 사용하십시오... :) 가장 중요한 것은 어디에, 왜 사용하는지 헤매지 않는 것입니다...
그래서 나는 715 페이지, 07/18/2010 14:56에서 카운터 뒤에 괄호를 두지 않았습니다 ...
 

위에 표시된 "효과"는 MQL 머신이 먼저 EX4 파일에서 선언된 변수 를 검색하고 논리적 분기에 관계없이 전체를 생성한다는 것을 증명합니다. 한편으로는 RAM을 절약하지 못하고 다른 한편으로는 비슷한 디자인을 만들 수 있지만 제 생각에는 이 스타일이 최선의 선택은 아닙니다.

 
Abzasc :
전체 문제는 {}가 없다는 것입니까? 아니면 무엇입니까? 고맙습니다!


전체 문제는 변수 선언에 있었습니다.

 int a;

나는 그것을 선언한 다음 필요할 때마다 그것을 사용했고, 당신은 변수를 반복적으로 선언했습니다. 아마도 컴파일러가 그것을 놓치지 않았을 것입니다.

음, {}는 루프의 한 반복에서 실행될 블록의 선언입니다. 루프에 하나의 문이 있으면 {}가 필요하지 않으며, 더 많은 경우 {}를 넣어야 합니다. 그렇지 않으면 루프가 올바르게 간주되지 않는 이유를 찾습니다.

추신: 프로그래밍을 막 시작했다면 항상 for 뒤에 중괄호를 넣은 다음 편안하게 제거하십시오.

 
ToLik_SRGV :

IgorM의 코드는 오류를 제공하지 않습니다. 분기의 멘션 수에 따라 메모리가 할당되지 않을 것이므로 모든 것이 좋습니다.
 
Abzasc :
루프는 항상 실행되어야 합니다.

그리고 여기에 주기가 있습니다. 이것은 사용되지 않는 블록에서 생성된 변수가 여전히 "게임"에 있고 다시 초기화할 필요 없이 start() 메서드 전체에서 볼 수 있고 사용할 수 있다는 예입니다. 재사용하기 전에 초기화를 해제하십시오.