简体   繁体   English

使用时间过滤器,我收到以下错误:'}' - 并非所有控制路径都返回一个值

[英]with using a timefilter, i get the following error: '}' - not all control paths return a value

I get the error: '}' - not all control paths return a value.我收到错误:'}' - 并非所有控制路径都返回一个值。 I am using:我在用:

 int StartHour = 8;
 int EndHour = 20;

And this is the code I am using:这是我正在使用的代码:

bool TimeFilter()
    {
    EndHour1=EndHour+GMTOffset;
    StartHour1=StartHour+GMTOffset;
    if ((StartHour+GMTOffset)<0)  {StartHour1=StartHour+GMTOffset+24;} 
    if ((EndHour+GMTOffset)<0)    {EndHour1=EndHour+GMTOffset+24;}     
    if ((StartHour+GMTOffset)>24) {StartHour1=StartHour+GMTOffset-24;} 
    if ((EndHour+GMTOffset)>24)   {EndHour1=EndHour+GMTOffset-24;}    
    

if (Use_TimeFilter==false) {comment1=""; return (true);}
      else 

if (StartHour1<EndHour1)
       {
         if (Hour()>=StartHour1 && Hour()<EndHour1)
         {
         comment1=""; 
         return (true);
         } 
         
         comment1="WARNING: Trading diluar Time Filter, No Open Position\n"; 
         return (false);
       }
 
     else
     
if (StartHour1>EndHour1)

       {
         if (Hour()>=StartHour1 || Hour()<EndHour1)
         {
         comment1=""; 
         return (true);
         } 
         comment1="WARNING: Trading diluar Time Filter, No Open Position\n"; 
         return (false);
       }

}

What is wrong and how to fix this so i don't receive this error anymore.出了什么问题以及如何解决此问题,因此我不再收到此错误。 Thanks in advance提前致谢

You are using multiple nested if else statements and there exists a possible scenario which would result in all the if statements not being fulfilled (ie Use_TimeFilter=True and StartHour1==EndHour1 ).您正在使用多个嵌套的if else语句,并且存在一种可能的情况,这将导致所有if语句都没有被执行(即Use_TimeFilter=TrueStartHour1==EndHour1 )。 You therefore need to simply add a final return(false) statement in your code.因此,您只需在代码中添加最终的return(false)语句。

bool TimeFilter()
{
   EndHour1=EndHour+GMTOffset;
   StartHour1=StartHour+GMTOffset;
   if((StartHour+GMTOffset)<0)  {StartHour1=StartHour+GMTOffset+24;} 
   if((EndHour+GMTOffset)<0)    {EndHour1=EndHour+GMTOffset+24;}     
   if((StartHour+GMTOffset)>24) {StartHour1=StartHour+GMTOffset-24;} 
   if((EndHour+GMTOffset)>24)   {EndHour1=EndHour+GMTOffset-24;}    

   if(!Use_TimeFilter) {comment1=""; return (true);}
   else if(StartHour1<EndHour1)
   {
      if(Hour()>=StartHour1 && Hour()<EndHour1)
      {
         comment1=""; 
      return(true);
      }
      comment1="WARNING: Trading diluar Time Filter, No Open Position\n"; 
   return(false);
   }
   else if(StartHour1>EndHour1)
   {
      if (Hour()>=StartHour1 || Hour()<EndHour1)
      {
         comment1=""; 
      return (true);
      } 
      comment1="WARNING: Trading diluar Time Filter, No Open Position\n"; 
   return (false);
   }
return(false);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM