登录发现更多内容
首页
资讯
分类
目录
索引
酷站
发帖
用户名
Email
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
门户
Portal
论坛
BBS
搜索
搜索
本版
用户
帖子
设置
我的收藏
退出
2
0
0
首页
技术交流
›
IF语句声明的变量仅在IF代码块内有效
返回列表
IF语句声明的变量仅在IF代码块内有效
[ 复制链接 ]
zorsite
技术交流
613
2
2018-5-17 10:07:35
[i=s] 本帖最后由 zorsite 于 2018-5-18 13:17 编辑 [/i]
如图所示:
使用Text实体显示处理器加工时间时,想要同时[color=#ff0000]获取临时实体的类型值[/color]。以下是Text Display代码:
[code]/**显示处理器加工时间*/
treenode current = ownerobject(c);
treenode textnode = param(1);
string starttext = "Object Stat: ";
treenode involved = node("Processor",model());
string statstr = "";
if (content(involved)>0) //如果处理器上有临时实体
{
treenode item = first(involved);
if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
{//如果处理器处于加工状态
statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
}
}
pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
setnodestr(textnode, concat(starttext, statstr));[/code]
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部[color=#ff0000]获取item type[/color],都应该是一样的结果。
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
点赞
0
收藏
0
────
0
人觉得很赞
────
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
2 回复
zorsite
楼主
回复
举报
2018-5-17 10:16:54
[i=s] 本帖最后由 zorsite 于 2018-5-18 13:29 编辑 [/i]
忽然有些觉悟。
将item的声明移出if模块,放在if语句前面,则两行获取item type的代码都有效。
在if模块内部声明的变量仅在模块内生效,也不能传递至else代码块。
回复
评论
举报
慧娴亚伦
回复
举报
2018-5-20 09:27:41
声明变量作用域的问题
在代码执行过程中,某些变量值很可能发生变化,但是提前获取过的声明则不会发生改变。
回复
评论
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
点评
高级模式
本版积分规则
回帖后跳转到最后一页
返回
技术交流
登录开启您的创作之旅
快速登录,立即开启您的创作之旅~
登录
热门问答
查看更多
1
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
12099
227
2
Flexsim二次开发之塔吊
Flexsim二次开发之塔吊
6145
45
3
FlexSim2016 中国象棋
FlexSim2016 中国象棋
6017
44
4
快递分拨中心案例~新手可参考
快递分拨中心案例~新手可参考
5636
62
5
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
5485
34
博主榜
Htenghui
+ 10630
白可露
+ 7753
liguanyu
+ 6759
4
Round2011
+ 6323
5
梁之安
+ 6321
6
zgh1120
+ 5341
7
ishelo
+ 4710
8
linweixu168
+ 3722
9
liuzhifan
+ 3628
10
adysunshine
+ 3566
首页
分类
目录
索引
我的