포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 890

 
evillive :

이 같은:


감사합니다. 하지만 정확히 필요한 것은 아닙니다. 한 마술사에 대해 몇 가지 종료 조건이 있지만 그 반대여야 합니다.

나는 이것을 생각해 냈습니다.

 void CritCloseBuy()
   {
     if ( OrderSelect (Ord, SELECT_BY_POS, MODE_TRADES)== true )
    {
       if ((OrderMagicNumber()== 10011 && 10033 )&&(...условия 1 ...)
      {
        ord_close=OrderClose(OrderTicket(), 0.1 , Bid, 0 , Red);
           if (ord_close = false )
          {
             Comment ( "Закрытие позиции БАЙ завершилось с ошибкой #" , GetLastError ());
          }
             else 
              {           
              Ord= 0 ;              
              }
           return ;
           }
           if ((OrderMagicNumber()== 10022 && 10044 && 10066 )&&(...новые условия...))
      {
        ord_close=OrderClose(OrderTicket(), 0.1 , Bid, 0 , Red);
           if (ord_close = false )
          {
             Comment ( "Закрытие позиции БАЙ завершилось с ошибкой #" , GetLastError ());
          }
             else 
              {           
              Ord= 0 ;              
              }
           return ;
           }           
          }
         }
작동할까요? 아니면 무엇이 잘못되었나요?
 
rapid_minus :


감사합니다. 하지만 정확히 필요한 것은 아닙니다. 한 마술사에 대해 몇 가지 종료 조건이 있지만 그 반대여야 합니다.

나는 이것을 생각해 냈습니다.

작동할까요? 아니면 무엇이 잘못되었나요?

그것은... 부드럽게 표현하자면...

한 명의 마술사를 위한 코드가 있는 경우 스위치 스위치 가 왜 거기에 있습니까?

그러나 if를 사용할 수도 있습니다. 더 좋아한다면 조건에 대해 생각할 필요가 있습니다. 지금 처방되는 조건은 어떻게 든 있어야하는 것과 동일하지 않습니다.

여기까지야

if ((OrderMagicNumber()==10011&&10033)&&(...)

컴파일 할 때 맹세합니까?

 
evillive :

그것은... 쉽게 말하면...

한 명의 마술사를 위한 코드가 있는 경우 스위치 스위치가 왜 거기에 있습니까?

스위치를 이해하지 못했을 수도 있지만 그 표현에는 닫는 조건에 대한 여러 옵션과 비교되는 한 가지 마법이 있습니다.

추신: 나는 속편을 보았다. 아직 컴파일을 하지 않았기 때문에 코드를 완료하지 않았습니다. AND 연산을 사용하여 숫자를 열거할 수 없습니까?

그럼 어떻게 나가? 각 마술사에 대해 반복하시겠습니까?

ZZY: 사실 여기에서는 AND가 아니라 OR이 필요합니다.

 
rapid_minus :

그럼 어떻게 나가? 각 마술사에 대해 반복하시겠습니까?

응.


그리고 스위치에 관해서는 여전히 프라이머를 피우십시오. 반대로 원하는만큼 많은 옵션이 처리됩니다 (케이스 0 : .., 케이스 1 : ..., 케이스 N : ..., 여기서 숫자 = 마법의 가치). 예제에서는 쓰기에 너무 게으르지만 두 명의 마술사에게만 충분했지만 기본 옵션에는 충분했습니다.)

 
evillive :

결국 OR로 각 마술사를 칠할 필요가 없습니까?
 
rapid_minus :

결국 OR로 각 마술사를 칠할 필요가 없습니까?
필요하다, Fedya, 필요하다 (c)
 
evillive :

응.


그리고 스위치에 관해서는 여전히 프라이머를 피우십시오. 반대로 원하는만큼 많은 옵션이 처리됩니다 (케이스 0 : .., 케이스 1 : ..., 케이스 N : ..., 여기서 숫자 = 마법의 가치). 예제에서는 쓰기에 너무 게을렀지만 두 명의 마술사에게만 충분했지만 기본 옵션으로는 충분했습니다.)

스위치를 설명해주셔서 감사합니다. 나는 그를 오해했다.
 

그러나 스위치에서는 if와 마찬가지로 다른 마술사에 대해 하나의 닫는 조건이 동일하게 반복됩니다.

유일한 질문은 어떤 옵션이 더 많은 비트를 먹을 것인지입니다.

 
rapid_minus :

그러나 스위치에서는 if와 마찬가지로 다른 마술사에 대해 하나의 닫는 조건이 동일하게 반복됩니다.

유일한 질문은 어떤 옵션이 더 많은 비트를 먹을 것인지입니다.

제가 놓친 부분이 있습니다. 이미 코드를 최적화하고 있습니까?
 
rapid_minus :

그러나 스위치에서는 if와 마찬가지로 다른 마술사에 대해 하나의 닫는 조건이 동일하게 반복됩니다.

유일한 질문은 어떤 옵션이 더 많은 비트를 먹을 것인지입니다.

이것은 if()와 동일한 분기이며 선택할 수 있는 단일 정수 옵션이 세 개 이상 있는 경우 코딩하기가 더 깔끔하고 더 편리해 보입니다. 옵션이 두 개뿐이거나 정수가 아닌 표현식이 비교되는 경우 if()만 가능합니다. 그리고 if() (if( option1 && option2 || option3 ) {action;})와 여러 옵션을 결합할 수도 있지만 스위치에서 직접 전환할 수는 없으며 하나씩만 전환할 수 있습니다.

스위치
만약()
스위치(x)
{
경우 1: 옵션 1에 따른 조치; 부서지다;
사례 2: 옵션 2에 대한 조치; 부서지다;
사례 3: 옵션 3에 대한 조치; 부서지다;
기본값: 기본 동작; 부서지다;
}
if( option1 ) { 옵션 1에 대한 작업; }
else if( option2 ) { 옵션 2에 대한 작업; }
else if( option3 ) { 옵션 3에 대한 작업; }
else { 기본 동작; }