"Tüm kontrol yolları bir değer döndürmez" hatası

 

Merhaba, sistemimi kodlamaya çalışıyorum ancak derledikten sonra "tüm kontrol yolları bir değer döndürmüyor" döndürüyor ve çift tıkladığımda aşağıdaki blokta görünüyor, lütfen biri sorunu işaret edebilir mi?

Şimdiden teşekkür ederim

 bool CalculateCurrentSellOrders( string symbol)
  {
   int sells= 0 ;
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
       if ( OrderSymbol ()== Symbol ()&& OrderMagicNumber ()==MAGICMA)
        {
         if ( OrderType ()== OP_SELL ) sells++;
        }
      }
   if (sells> 0 ) return ( true );
  }
 
Siladeh :

Merhaba, sistemimi kodlamaya çalışıyorum ancak derledikten sonra "tüm kontrol yolları bir değer döndürmüyor" döndürüyor ve çift tıkladığımda aşağıdaki blokta görünüyor, lütfen biri sorunu işaret edebilir mi?

Şimdiden teşekkür ederim


Sorun çözüldü


#Property strict öğesini kaldır

 
Siladeh :

Sorun çözüldü


#Property strict öğesini kaldır


Bu bir çözüm, fazladan 1 satır ekleyin

   if (sells> 0 ) return ( true );
   else      return ( false );   // Add this line
 
GumRai :


Bu bir çözüm, 1 ekstra satır ekleyin


teşekkür ederim dostum
 
Veya daha basit:
 return ( sells> 0 );
// if(sells>0) return(true);                
// else     return(false);  // Add this line
 

WHRoeder - İpuçlarınız sayesinde kodumdan daha fazla satır çıkarmaya devam ediyorum. GumRai ile tamamen aynı şeyi yapardım. Teşekkürler!

 
GumRai :


Bu bir çözüm, fazladan 1 satır ekleyin


Merhaba GumRai , sırf sohbet olsun diye, orada başka birine gerçekten ihtiyacın yok, değil mi? :)

   if (sells> 0 ) return ( true );
   return ( false ); 
 
Siladeh :

Merhaba, sistemimi kodlamaya çalışıyorum ancak derledikten sonra "tüm kontrol yolları bir değer döndürmüyor" döndürüyor ve çift tıkladığımda aşağıdaki blokta görünüyor, lütfen biri sorunu işaret edebilir mi?

Şimdiden teşekkür ederim

Sonucu kontrol etmezseniz OrderSelect için bir uyarı alabilirsiniz.

 bool CalculateCurrentSellOrders( string symbol)
  {
   int sells= 0 ;
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false )
         Print ( "OrderSelect() failed with error : " +GetLastError());
       if ( OrderSymbol ()!= Symbol ()|| OrderMagicNumber ()!=MAGICMA) continue ;
       if ( OrderType ()== OP_SELL ) sells++;
     }
   if (sells> 0 ) return ( true );
   return ( false );
  }


Umarım yardımcı olur

 
thrdel :


Merhaba GumRai , sırf sohbet olsun diye, orada başka birine gerçekten ihtiyacın yok, değil mi? :)


Hayır, haklısın.

Sizinkinin üzerinde WHRoeders gönderisi aynı şeyi elde etmek için daha da basit

 
GumRai :


Hayır, haklısın.

Sizinkinin üzerinde WHRoeders gönderisi aynı şeyi elde etmek için daha da basit


Doğru, ancak yalnızca bunun gibi belirli durumlar için. Diğer yol daha geneldir, kaç tane ve hangi koşullar olursa olsun, hiçbiri true döndürmezse false döndürür.

Kabul etmek gerekir ki, bu özel örnek için zarif bir çözüm.

 
thrdel :

...

ve kullanmazsanız:

Umarım yardımcı olur

Koşul olduğu için -1 eklemeniz gerekmez
i < OrdersTotal ()
-1 eklerseniz dizinin 1 öğesini kaçırırsınız.