for循环超出比较限制

时间:2013-08-19 15:39:40

标签: for-loop groovy

这感觉很愚蠢,但这段代码出了什么问题?我的for循环运行到55

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("StepName#ResponseAsXml")

def cnt = holder["count(//Results/ResultSet/Row)"]
log.info "Row count is: " + cnt

for(int i = 1; i<=cnt; i++){
    x = x + 1
}

log.info "Loop ran for: " + x

输出如下:

Mon Aug 19 12:38:04 ADT 2013:INFO:行数为:7

Mon Aug 19 12:38:04 ADT 2013:INFO:Loop for:56

编辑... 让我们尝试不同的东西,忘记变量x,然后像这样打印行:

for(int i = 0; i<cnt; i++){
    log.info "At row: " + i.toString()
}

我得到以下输出:

Mon Aug 19 12:57:41 ADT 2013:INFO:Row count: 7
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 0
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 1
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 2
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 3
.
.
.
.
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 54

1 个答案:

答案 0 :(得分:10)

您的cnt变量的类型为String(“7”)。 ASCII数值“7”为55,这就是为什么循环计数最多为54。

尝试以下方法:

for(int i = 0; i<(cnt as int); i++){
    println "At row: " + i.toString()
}