程序逻辑

阅读(3093) 标签: 程序逻辑,

本章主要展示有关程序逻辑的代码参考,比如将网格内的数据拼成序列、实现类似switch/case的结构、取得当前循环已进行的次数、继续、跳出外层循环、清除使用过的变量以节省内存、向子程序传递多个参数、子程序返回多个值、成片注释的写法写进多个单元格中、在代码中使用宏等。

将网格内的数据拼成序列

 

A

B

C

D

 

1

1 

2

3

4

 

2

=[A1:D1]

 

 

 

 

 

实现类似 switch/case 的结构

 

A

B

 

1

=80

 

 

2

if A1>=90

 

 

3

 

> A10="excellent"

 

4

else if A1>=80

 

 

5

 

> A10="good"

 

6

else if A1>=60

 

 

7

 

> A10="pass"

 

8

else

 

 

9

 

> A10="fail"

 

10

 

 

good

 

取得当前循环已进行的次数

 

A

B

C

 

1

for

if #A1==10000

break

 

 

继续、跳出外层循环

 

A

B

C

D

 

1

for [3,2,1]

 

 

 

 

2

 

for [5,1,3]

 

 

 

3

 

 

if A1>B2

next A1

继续下一个循环

4

 

 

if A1== B2

break A1

跳出循环

 

清除使用过的变量以节省内存

 

A

 

1

>var1=to(100)

 

2

=demo.query("select * from EMPLOYEE")

 

3

 

4

> var1=null,A2=null

清除var1A2单元格

 

向子程序传递多个参数

 

A

B

 

1

func

 

多个参数依次排列

2

 

=A1

 

3

 

=B1

 

4

 

return B2+B3

 

5

=func(A1,11,21)

 

32

 

子程序返回多个值

 

A

B

 

1

func

 

 

2

 

return [1,2,3,4]

 

3

 

 

 

4

=func(A1)

 

 

 

成片注释的写法

 

A

B

 

1

//This is an example about…

 

一到三行都是注释

2

 

1. Remark 1…

 

3

 

2. Remark 2…

 

4

=1+3

 

 

 

在代码中使用宏

 

A

B

 

1

[1,2,3,4]

 

 

2

func

return A1.${A2}()

 

3

func

return A1.${lower(A3)}()

 

4

=func(A2,"sum")

 

返回A1.sum()

5

=func(A3,"Avg")

 

返回A1.avg()

跨网格调用

 

A

 

1

=size.(char(65+rand(26))).concat()

size是参数,从外部传入

2

return A1

返回A1

 

 

A

 

1

=call(“D:/demo.dfx”,5)

调用demo.dfx子程序,传入参数5

 

并行

 

A

B

 

1

=demo.query("select * from EMPLOYEE")

 

 

2

=A1.group(GENDER)

 

按性别分组

3

fork A2

=A3.select(SALARY>10000)

并行计算,A3汇总结果