我有一段代码,用于在工作表中执行搜索,然后在找到时分配变量。
以下是代码:
for(i=0;i<values.length; i++)
{
rowvalue = values[i];
for (j=l=1;j<rowvalue.length; j++) {
colvalue = rowvalue[j];
colvalue1 = colvalue.toString();
if(colvalue1.indexOf("search1")>-1 && colvalue1.indexOf("search2")==-1
&& rowvalue[j+5] == "") {
rowp = i+1, colp = j+1;
var itemcode = 9;
}
else if(colvalue1.indexOf("search1")>-1 && colvalue1.indexOf("search2")==-1) {
rowp = i+1, colp = j+1;
var itemcode = 9;
}
执行时,它将始终返回满足第二个条件的值(否则为),尽管满足第一个条件。如果我删除else if语句,那么我将得到正确的返回值。
据我所知,一旦if语句得到满足,它应该跳过其他地方,否则就是。但出于某种原因,情况并非如此。我不确定我是否正确使用该功能,或者我对该功能的工作方式有误解。
答案 0 :(得分:1)
如果你正确地缩进你的代码,它就会变得非常明显
您的代码缩进。
for(i=0;i<values.length; i++)
{
rowvalue = values[i];
for (j=l=1;j<rowvalue.length; j++)
{
colvalue = rowvalue[j];
colvalue1 = colvalue.toString();
if(colvalue1.indexOf("search1")>-1 && colvalue1.indexOf("search2")==-1 && rowvalue[j+5] == "")
{
rowp = i+1, colp = j+1;
var itemcode = 9;
else if(colvalue1.indexOf("search1")>-1 && colvalue1.indexOf("search2")==-1)
{
rowp = i+1, colp = j+1;
var itemcode = 9;
}
您可能意味着如下所示,请注意“添加缺少的结束花括号”
for(i=0;i<values.length; i++)
{
rowvalue = values[i];
for (j=l=1;j<rowvalue.length; j++)
{
colvalue = rowvalue[j];
colvalue1 = colvalue.toString();
if(colvalue1.indexOf("search1")>-1 && colvalue1.indexOf("search2")==-1 && rowvalue[j+5] == "")
{
rowp = i+1, colp = j+1;
var itemcode = 9;
} // Added missing closing curly bracket
else if(colvalue1.indexOf("search1")>-1 && colvalue1.indexOf("search2")==-1)
{
rowp = i+1, colp = j+1;
var itemcode = 9;
}
}
}
答案 1 :(得分:0)
在else语句之前单个结束大括号应该解决问题。