一个代码块,它的主格就是起始格,我们再来了解一下什么是代码块格。
如果满足:主格所在行下面的各行中,主格所在列及该列左侧的所有单元格均为空格,则这些行及主格所在行一起构成主格的代码块;直到在某一行中,主格所在列或其左侧的任一个单元格非空,则自该行起的各行均不再属于代码块。
|
A |
B |
C |
D |
1 |
|
|
|
|
2 |
|
>Code begin |
|
|
3 |
|
|
|
|
4 |
|
|
|
|
5 |
|
|
|
|
6 |
Not null |
Not null |
|
|
在上面的网格中,如果B2是代码块的主格,如果满足绿色区域为空格,则第2~5行构成了主格B2的代码块。红色区域中的A6或B6中任一个格子不是空格,无论是代码格、计算格、执行格、常数格甚至是注释格,都意味着从第6行起不再是B2的代码块。
代码块并非仅用于一条语句,也经常用来在主格中放置语句,实现循环流程或分支流程等,如:
|
A |
B |
C |
1 |
=demo.query("select NAME as CITY, STATEID as STATE from CITIES") |
[] |
|
2 |
for A1 |
=demo.query("select * from STATES where STATEID=?",A2.STATE) |
|
3 |
|
if left(B2.ABBR,1)=="N" |
>A2.STATE=B2.NAME |
4 |
|
|
>B1=B1|A2 |
上面的代码中,使用了代码块。其中A2为主格的代码块实现循环计算,B3为主格的代码块执行判断流程。B1中获得的结果同样是所在州的简称以"N"开头的城市。
我们在这里研究的代码块类型,并不包括这种用语句实现各种流程的情况,而是指用续格规则写在多个单元格中,执行时视为一个语句的代码块。续格规则就是指在计算格或执行格以字符 ,;( 结尾时,将自动拼接下一格内容,直到不是这些字符结尾或本代码块结束。
当单元格的格串以//开头时,表示以该格为主格的整个代码块都是注释。这个代码块称为注释块。集算器碰到这种格串时会直接跳过整个注释块。如:
|
A |
B |
1 |
//comment |
1.note... |
2 |
|
2.note... |
3 |
|
3.note... |
4 |
|
=1+1 |
5 |
=1+1 |
|
在以A1为首格的代码块中,所有单元格均被视为注释,而不需像注释格一样以/字符开头,即使B4单元格也同样被作为注释处理。A5单元格非空,标志着代码块结束,A5格中的表达式被正常解析计算。
与计算块,赋值块与执行块不同,注释块中并非需要执行的表达式,因此也不要求续行规则。