zoukankan      html  css  js  c++  java
  • Visual LISP 第3章 程序的流程控制盒AutoLISP文件(1)程序的流程控制

      AutoLISP程序的流程通过流程控制函数控制。

    1.分支结构

      (1)(cond(测试表达式1 结果表达式1)[(测试表达式2 结果表达式2)]……)

      【例】

    1 (setq n( cond((<= i 1) 1)
    2              ((<= i 1) 1)
    3              ((<= i 2) 4)
    4              ((<= i 3) 10)
    5              (t 100)
    6         )
    7 )

      说明:该函数类似C语言中的switch语句。最后一个测试表达式"t(或T)"相当于"default",指其余情况。也可缺少这个测试表达式。与C语言switch不同的是,若某一测试表达式成立,即返回相应结果表达式的值,不在向下测试。如果i等于0,n值就为1,运算结束。

      (2)(if 测试条件表达式 表达式1 [表达式2])

      若测试条件表达式结果为真,则执行表达式1,否则,执行表达式2.例如:(if(> a 1) (setq b 2))含义是:如果a大于1,则b等于2,否则不进行任何计算,求值结束。(if(> a 1) (setq b 2) (setq b 2))含义是:如果a大于1,则b等于2,否则b等于3,求值结束。

      当条件表达式成立时,要执行多个表达式的时候,需要用到progn函数。

      (3)(progn 表达式……)

    (if(> a 1)
        (progn (setq b 2)
               (print (+ b a))       
        )
        (progn (setq b 4)
               (print b)       
        )
    )

      解释:如果条件成立,则b等于2,打印a和b的和,返回a和b的和。否则,b等于4,打印b,返回b的值。

    2.循环结构

      (1)(repeat 整数n 表达式……)

      重复执行n次。对多有的表达式求值,返回最后一个表达式的计算结果。

    1 (setq a 1 b 100)
    2 (repeat 10
    3   (setq a(+ 1 a))
    4   (setq b(+ 10 b))
    5 )

      (2) (while 测试式 表达式……)

     (setq i 1 a 10)
     (while ( <=  i 10)
       (setq a(+ a 10))
      (setq i(1+ i))
     )

    不知道为什么总出错。

    解决:因为<=需要连起来写

  • 相关阅读:
    Running APP 使用说明
    Android 控件八 WebView 控件
    Android 控件七 ImageView 控件
    Android 控件六 CheckBox 控件
    Android 控件五 RadioButton 控件
    Android 控件四 EditText 控件
    Android 控件三 TextView 控件实现 Button
    Android 控件二 Button
    Android 基础控件演示实例
    Android 控件一 TextView
  • 原文地址:https://www.cnblogs.com/xueniwawa/p/3966981.html
Copyright © 2011-2022 走看看