查看: 6|回复: 6

Mergesort上产品类型与端口数目不相等的问题

[复制链接]

主题

0

回帖

1512

积分

高级会员

积分
1512
发表于 2010-6-12 16:50:07 | 显示全部楼层 |阅读模式
在source里面设了三种产品,mergesort的output有两个端口,我想端口1输送一种产品,端口2输送两种产品,代码如下:
{
case 1: return getitemtype(item) == 1; break;
case 2: return getitemtype(item) == 2||3;break;
}
结果成功了。但是,
如果我将端口1设为输送两种产品,端口2设为输送一种产品,代码:
switch(port)
{
case 1: return getitemtype(item) == 1||2; break;
case 2: return getitemtype(item) == 3;break;
}
产生的结果为:端口1上出现3种产品,端口2没有产品。这是怎么回事呢?
有谁有关于Megesort的详细介绍吗?

主题

0

回帖

1208

积分

高级会员

积分
1208
发表于 2010-6-14 01:17:42 | 显示全部楼层
很奇怪,我也发现了

主题

0

回帖

1208

积分

高级会员

积分
1208
发表于 2010-6-14 01:31:00 | 显示全部楼层
convery 却可以

主题

0

回帖

1208

积分

高级会员

积分
1208
发表于 2010-6-14 04:42:12 | 显示全部楼层
写成case 1: return getitemtype(item) == 1||getitemtype(item)==  2;
case 2: return getitemtype(item) == 3;

就可以实现

主题

0

回帖

1208

积分

高级会员

积分
1208
发表于 2010-6-14 05:15:56 | 显示全部楼层
case 2: return getitemtype(item) == 2||3;
等于 case 2: return 2||3;
等于: return 1;
你的第一个程序相当于:
case 1: return getitemtype(item) == 1;
case 2: return 1;在Megesort中最后一个出口,可用来将在所有其他临时实体从最后一个输出端口发送出去。所以,可以实现功能!

所以第二个你的程序可以解读为:
switch(port)
{
case 1: return 1;(相当于所有实体可以从出口1流出)
case 2: return getitemtype(item) == 3;(ITEM3从出口也可流出)
}
由于第一个出口优先于出口2,所以ITEM3 一直从出口1流出。

如有错误,请指教。

主题

0

回帖

5598

积分

等待验证会员

积分
5598
发表于 2012-2-6 16:14:14 | 显示全部楼层
[quote]case 2: return getitemtype(item) == 2||3;
等于 case 2: return 2||3;
等于: return 1;
你的第一个程序相当于:
case 1: return getitemtype(item) == 1;
case 2: return 1;在Megesort中最后一个出口,可 ...
[size=2][color=#999999]wj109260758 发表于 2010-6-14 05:15[/color] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=177&ptid=64]http://www.flexsim.asia/images/common/back.gif[/url][/size][/quote]

理解有些问题啊,这个触发是一个判断,当每个item到达一个port(端口)时触发一次,然后判断触发:如果为真则发送,如果为假则不发送。
return getitemtype(item) == 2||3   相当于判断两次,只要一次为真则整体为真,判断的条件是:getitemtype(item) == 2 和 3 ,  3总为真

这种写法是不正确的,而return getitemtype(item) == 2||getitemtype(item) == 3  则判断两次,所以要注意这种细节。

主题

0

回帖

64

积分

注册会员

积分
64
发表于 2012-3-30 11:19:05 | 显示全部楼层
感觉还是没有看懂到底为什么会出现这种情况?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|京ICP备14043114号-2

在本版发帖
关注公众号
QQ客服返回顶部