ruby编码中碰到的一个诡异问题
发现用if进行多重嵌套时,总是报错,"syntax error, unexpected $end, expecting kEND ",但使用case后,正常通过,匪夷所思!
原编码如下:
while i <2
userSheet.Cells(i,2).Value="111";
userSheet.Cells(i,3).Value="aaa";
userSheet.Cells(i,4).Value="group";
userSheet.Cells(i,5).Value="kk";
userSheet.Cells(i,6).Value="女";
userSheet.Cells(i,7).Value="aaa@163.net";
userSheet.Cells(i,8).Value="身份证";
userSheet.Cells(i,9).Value="123";
userSheet.Cells(i,10).Value="小学";
userSheet.Cells(i,11).Value="12345";
userSheet.Cells(i,12).Value="123456";
userSheet.Cells(i,13).Value="火星";
userSheet.Cells(i,14).Value="12345678";
j=j+1;
i=i+1;
if i<10 then
userSheet.Cells(i,1).Value="test"+"0000000"+j.to_s;
else if i<100 then
userSheet.Cells(i,1).Value="test"+"000000"+j.to_s;
else if i<1000 then
userSheet.Cells(i,1).Value="test"+"00000"+j.to_s;
else i<10000
userSheet.Cells(i,1).Value="test"+"0000"+j.to_s;
end
end
通过后的编码:
while i <22
userSheet.Cells(i,2).Value="111";
userSheet.Cells(i,3).Value="aaa";
userSheet.Cells(i,4).Value="zqd-group";
userSheet.Cells(i,5).Value="tt";
userSheet.Cells(i,6).Value="女";
userSheet.Cells(i,7).Value="aaa@163.net";
userSheet.Cells(i,8).Value="身份证";
userSheet.Cells(i,9).Value="123";
userSheet.Cells(i,10).Value="小学";
userSheet.Cells(i,11).Value="12345";
userSheet.Cells(i,12).Value="123456";
userSheet.Cells(i,13).Value="火星";
userSheet.Cells(i,14).Value="12345678";
j=j+1;
i=i+1;
case i
when 1..9
userSheet.Cells(i,1).Value="test"+"0000000"+j.to_s;
when 10..99
userSheet.Cells(i,1).Value="test"+"000000"+j.to_s;
when 100..999
userSheet.Cells(i,1).Value="test"+"00000"+j.to_s;
else 1000..1100
userSheet.Cells(i,1).Value="test"+"0000"+j.to_s;
end
end
原编码如下:
while i <2
userSheet.Cells(i,2).Value="111";
userSheet.Cells(i,3).Value="aaa";
userSheet.Cells(i,4).Value="group";
userSheet.Cells(i,5).Value="kk";
userSheet.Cells(i,6).Value="女";
userSheet.Cells(i,7).Value="aaa@163.net";
userSheet.Cells(i,8).Value="身份证";
userSheet.Cells(i,9).Value="123";
userSheet.Cells(i,10).Value="小学";
userSheet.Cells(i,11).Value="12345";
userSheet.Cells(i,12).Value="123456";
userSheet.Cells(i,13).Value="火星";
userSheet.Cells(i,14).Value="12345678";
j=j+1;
i=i+1;
if i<10 then
userSheet.Cells(i,1).Value="test"+"0000000"+j.to_s;
else if i<100 then
userSheet.Cells(i,1).Value="test"+"000000"+j.to_s;
else if i<1000 then
userSheet.Cells(i,1).Value="test"+"00000"+j.to_s;
else i<10000
userSheet.Cells(i,1).Value="test"+"0000"+j.to_s;
end
end
通过后的编码:
while i <22
userSheet.Cells(i,2).Value="111";
userSheet.Cells(i,3).Value="aaa";
userSheet.Cells(i,4).Value="zqd-group";
userSheet.Cells(i,5).Value="tt";
userSheet.Cells(i,6).Value="女";
userSheet.Cells(i,7).Value="aaa@163.net";
userSheet.Cells(i,8).Value="身份证";
userSheet.Cells(i,9).Value="123";
userSheet.Cells(i,10).Value="小学";
userSheet.Cells(i,11).Value="12345";
userSheet.Cells(i,12).Value="123456";
userSheet.Cells(i,13).Value="火星";
userSheet.Cells(i,14).Value="12345678";
j=j+1;
i=i+1;
case i
when 1..9
userSheet.Cells(i,1).Value="test"+"0000000"+j.to_s;
when 10..99
userSheet.Cells(i,1).Value="test"+"000000"+j.to_s;
when 100..999
userSheet.Cells(i,1).Value="test"+"00000"+j.to_s;
else 1000..1100
userSheet.Cells(i,1).Value="test"+"0000"+j.to_s;
end
end