使用一連串IF-GOTO的經驗
本帖最后由 羅蓋仙 于 2013-7-24 22:53 编辑使用者如果需要使用一連串的IF-GOTO,我想說明一些事項與特性
形式1:
#100=选兵(陸.海.空)
IF[#100 EQ 陸 ] GO1
IF[#100 EQ 海 ] GO2
GO3(鼻用說.當然是空軍)
(或不用GOTO3省略它.可以的話在GOTO2後面直接就做,屬於空軍加工部分)
因為EQ是很確定.鐵定的東西..使用者可安排快捷性(調整順序)
如果怕#100有錯誤.如輸入天兵..可在#100輸入後...與GOTO之間進行防呆
也可不防呆,加工會鑽錯,誰叫使用者故意去測試玩弄MACRO,沒防呆功能用戶最好空跑一下,確定好再做
還有一種防呆寫法:
#100=選兵(陸.海.空)
IF[#100 EQ 陸 ] GO1
IF[#100 EQ 海 ] GO2
IF[#100 EQ 空 ] GO3
#3000=1.(如果流到這裡表示#100投入有誤)
N1....
N2....
N3....
M99
形式2:
#100=領國家的薪水(人民,老師,軍警,政官(民意.立法))
IF[#100 EQ 0万] GO1
IF[#100 GT 5万] GO2
IF[#100 LT 5万] GO3
GO4(可省略條件式[#100 EQ5万])老師
..........
N1 人民
N2 政官
N3 軍警
N4 老師
M99
※注意1與3可能會有衝突,有前後順序性的
形式2是以新台币計價的
另外一個IF-THEN的例子:
假設#100=已用四則運算,算好的結果
IF[#100 EQ 2.5万] TH#30=10.
IF[#100 EQ 0万] TH#30=10.
IF[#100 GT 2.5万] TH#30=20.
IF[#100 LT 2.5万] TH#30=15.
N1 G1 X#30 Y#25.......開始加工
上述2與4性質雷同可能會有衝突,不能這樣寫,可改寫成,A法:
IF[#100 EQ 2.5] TH#30=10.
IF[#100 EQ 0.] TH#30=10.
IF[#100 EQ 0.]GO1或IF[#30 EQ 10.]GO1(讀到2先跳開)
IF[#100 GT 2.5] TH#30=20.
IF[#100 LT 2.5] TH#30=15.
N1 G1 X#30 Y#25.......開始加工
或改寫成,B法:使用或閘(OR)
#30=10.
IF[[#100 EQ 0.]OR[#100 EQ 2.5]]GO1(判斷好就先跳開)
IF[#100 GT 2.5] TH#30=20.
IF[#100 LT 2.5] TH#30=15.
N1 G1 X#30 Y#25.......開始加工
還有一種不使用TH的寫成,如下:
30=10.
IF[[#100 EQ 0.]OR[#100 EQ 2.5]]GO1
#30=20.
IF[#100 GT 2.5] G01
#30=15.
IF[#100 LT 2.5] GO1<---此條件式可以省略
N1 G1 X#30 Y#25.......開始加工
#30會一直有數值去覆蓋它
形式3:理髮
#100=2兵(1.)、一兵(1.5)、上兵(2.)、下士(2.5)、中士(3.0)
IF[ #100 LE 3. ] GOTO理15分頭
IF[ #100 LE2.5] GOTO理12分頭
IF[ #100 LE 2. ] GOTO理9分頭
IF[ #100 LE1.5] GOTO理6分頭
IF[ #100 LE 1. ] GOTO理豬頭
※順序可顛倒,這不會有衝突,如阿兵哥人多可考慮置於首,考慮快捷性
另外的一種B式
IF[ #100 GE 3. ] GO
IF[ #100 GE 2.5] GO
IF[ #100 GE 2. ] GO
IF[ #100 GE 1.5] GO
IF[ #100 GE 1. ] GO
順序不可顛倒喔!不然少將會理成狗頭
此例不能安排、佈置快捷性
A式:有點像把數值逼到牆角比,自不量力可直接看出
B式:像在自由空間比,如果順序調換
有錢人也可以去小吃店吃牛肉麵
高學歷也可撿回收物當職業
再說一下B:順序不能上下倒立,只能轉身如
IF[ 3. LE #100 ] GO
...
...
IF[ 1. LE #100 ] GO
A.B兩者有一種共通的特性,領多少錢就做多少事
如果順序顛倒,可能是使用者需要截長補短(抓長補短)的性質,有互補的作用
以上為個人的經驗:) 本帖最后由 羅蓋仙 于 2013-7-25 22:18 编辑
形式3的例子有錯誤,小弟越看越奇怪,抱歉
黑字例子改成這樣(A式)
IF[ #100 GE 3. ] GO理15分頭
IF[ #100 GE 2.5] GO理12分頭
IF[ #100 GE 2. ] GO理9分頭
IF[ #100 GE 1.5] GO理6分頭
IF[ #100 GE 1. ] GO理3分頭
紫字例子改成這樣(B式)
IF[ #100 LE 1. ] GO理15分頭
IF[ #100 LE1.5] GO理12分頭
IF[ #100 LE 2. ] GO理9分頭
IF[ #100 LE2.5] GO理6分頭
IF[ #100 LE 3. ] GO理3分頭 小手一抖,金币拿走,谢谢分享
精细族赚钱窍门 谢谢分享xxfx 看得 好纠结 看不懂啊宏程序 小手一抖,金币拿走,谢谢分享 攒钱哪!速度 看不懂是什么 這樣反而 有點難懂了 我資質不好