TC官方合作论坛

 找回密码
 立即注册
查看: 830|回复: 9
打印 上一主题 下一主题

[已解决] for语句的步长是否只能为1?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-7 10:19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请问TC的for语句是不是只支持步长为1?
类似
for(i=inc; i<size; i+=inc)
endfor
这样的语句编译时报错:“for语句,步长语句错误”

TC版本:4.0.3.0
回复

使用道具 举报

沙发
发表于 2013-1-7 10:28:23 | 只看该作者
回复 1楼haking的帖子

i+=inc这个你是想跳着累加?for语句第三个表达式应该不支持这种写法,如果你要确实那样写 你试试
i=i+inc  试试看
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2013-1-7 11:17:29 | 只看该作者
回复 2楼尛情哥的帖子

for(i=inc; i<size; i=i+inc)
endfor
这种是可以的。很奇怪类自增的形式怎么不支持。
还有更无语的:
for(i=inc; i<size && data < data[i-1]; i=i+inc)
endfor
竟然数组越界了。后来发现,
i<size && data这个有问题。
就算i<size不成立,还是会照样执行&&的后半部分。
真没必要。
回复 支持 反对

使用道具 举报

地板
发表于 2013-1-7 11:45:41 | 只看该作者
回复 3楼haking的帖子

提示数组越界  你这个数组下标i 比你定义的数组长度大吧 你用个消息框把i的值弹出来看看
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2013-1-7 12:27:14 | 只看该作者
回复 4楼尛情哥的帖子

数组越界肯定是这种原因
不过之所以会使用不在数组范围内的下标是因为
TC的&&运算不是短路啊。所以在访问数组之前加上的判断就没起到作用了。
改成:
for(i=inc; i<size; i=i+inc)
    if(data < data[i-1])
        // do something
    else
        break
    endif
endfor
就可以了
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2013-1-7 12:28:18 | 只看该作者
.。。为什么两次回复的data【i】都变成data
回复 支持 反对

使用道具 举报

7#
发表于 2013-1-7 12:33:38 | 只看该作者
回复 5楼haking的帖子

短路? 没听过这种说法,你的意思是&&前面不成立后面就不执行?   在TC也是这样的
  1. data[i] 这个 要在添加代码里输入才显示
复制代码

回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2013-1-7 13:25:46 | 只看该作者
回复 7楼尛情哥的帖子

我早上试的时候好像是这样的
condition1 && condition2
如果condition1为false,还是会去判断一次condition2的
我代码删了。懒得写多一次。你可以试试
我觉得TC应该不用而且不要去判断condition2比较好
回复 支持 反对

使用道具 举报

9#
发表于 2013-1-7 14:12:49 | 只看该作者
从文档上看"&&"应该是非短路运算的
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2013-1-7 15:38:07 | 只看该作者
回复 9楼Soy_meng的帖子
  1. 当表达式进行“&&”(逻辑与)运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。
  2. 例如:
  3.    (7<8) && (3==3);
  4. //7小于8返回真,3等于3返回真,两边都为真,返回真
  5.    (10<8) && (3==3);
  6. //10小于8返回假,3等于3返回真,一边为假,返回假
复制代码
是有这种隐含意思
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-7 20:59 , Processed in 0.237637 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表