Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:复杂的if 嵌套的关系,请老师指导

1楼
幸运60 发表于:2018/11/28 21:00:04

if holding>0 then begin
                条件1
                条件2
                if 条件3  then begin   
                                   sell(holding>0,1,market);
                                      end                  
                 if 条件4 then begin
                                  sell(holding>0,1,market);
                              
                                      end;

                 if 条件5 then
                       sell(holding>0,1,market);
                end;

 

==================================

这几个if嵌套的关系,搞不清楚了,

请老师指导下

 

如果分开来写,这几个条件之间的什么关系?

 

是不是就是

 if  条件1 and 条件2 and 条件3 then begin   
                                   sell(holding>0,1,market);
                                      end 

 if  条件1 and 条件2 and 条件4 then begin   
                                   sell(holding>0,1,market);
                                      end 

==================================

 

最后一个条件5是没有then

 

有什么区别

2楼
wenarm 发表于:2018/11/29 8:39:25

不是,

你的代码是if双层嵌套,如果holding>0成立则分别判断条件3、4、5,条件3、4、5谁满足就执行谁、

 

注:条件1,2 这种写法没有有语法结构,不知道。

 

这个语法不对,可以这样写

 if 条件5 then sell(holding>0,1,market);

 

或者,英文begin和end是成对出现的,

 if 条件5 then begin
                       sell(holding>0,1,market);
                end;

 

 

3楼
FireScript 发表于:2018/11/29 8:55:09
 条件1,条件2也是外部的if 语句?还是只是变量定义的语句。代码不完整,逻辑我没法判断清楚。
4楼
幸运60 发表于:2018/11/29 10:44:47

谢谢,老师,指导,我想简化下,谁满足执行谁,用什么结构能把第一个if,去掉?

5楼
幸运60 发表于:2018/11/29 10:54:35

条件1,条件2 和条件3是什么关系呀?

6楼
FireScript 发表于:2018/11/29 11:14:01
 你给的代码是看不出什么关系的。
这2个条件就孤零零的在这里,如果这里只是计算某个值,那和后面没其实啥关系,但是这里具体是什么你没给出来。

if holding>0 then begin
                条件1
                条件2

                if 条件3  then begin   
                                   sell(holding>0,1,market);
                                      end                  
                 if 条件4 then begin
                                  sell(holding>0,1,market);
                              
                                      end;

                 if 条件5 then
                       sell(holding>0,1,market);
                end;


第一个if 和begin-end 如果要去掉的话,改写成这样,是等效的。


if 条件3  and holding>0 then

begin   
sell(holding>0,1,market);
end  

               
if 条件4
and holding>0 then

begin
sell(holding>0,1,market);                              
end;

 if 条件5  and holding>0 then sell(holding>0,1,market);



共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.06348 s, 3 queries.