青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Life is Good.

Enhance Tech and English
隨筆 - 65, 文章 - 20, 評論 - 21, 引用 - 0
數據加載中……

Sorting out behavior of "IF / ELSE"

Sorting out behavior of “IF / ELSE “

 

The “ELSE” part of an IF statement is assumed in Lisp. So, if not careful, you may get unexpected behavior.

 

Here is a recent change (in blue/gray highlight) someone pushed up to Perforce for one of the  lisp files:

   (setq x nil)

  (setq cnt 0)

  (while (< cnt (length ss))

    (if (nth cnt ss)

      (setq en (handent (nth cnt ss)))

      (if en

        (progn

          (setq x value1)

          (if (not x)

            (setq x value2)

          )

        )

      )

    )

 

This looks pretty benign… but it will likely cause a regression.

 

To better see this problem, here is the same code with an “ELSE” comment inserted where end of the “True” part of the IF statement ends and the assumed “else” part of the if statement begins:

 

   (setq x nil)

  (setq cnt 0)

  (while (< cnt (length ss))

    (if (nth cnt ss)

      (setq en (handent (nth cnt ss)))

                 ; ELSE

      (if en

        (progn

          (setq x value1)

          (if (not x)

            (setq x value2)

          )

        )

      )

    )

 

So, here’s what will happen. The IF statement checks (nth cnt ss) to see if it is non-nil. If it is non-nil, then it fills variable “en” with the converted handle value in (nth cnt ss). Then it exits the IF statement. But, if (nth cnt ss) is nil, then a second IF statement checks undefined / uninitialized variable “en” and, if it happens to be non-nil, tries to do something with it. Likely it will do something not expected or desired.

 

Grouping lines of code in an IF statement

 

A better way to set up this IF/ELSE statement is probably something like this:

 

  (setq x nil)

  (setq cnt 0)

  (while (< cnt (length ss))

    (if (nth cnt ss)

      (progn

        (setq en (handent (nth cnt ss)))

        (if en

          (progn

            (setq x value1)

            (if (not x)

              (setq x value2)

            )

          )

        )

      )

    )

 

The beginning “(progn” and ending “)” to balance it groups all of the in-between lines of code to be executed for the “True” part of the IF statement. This is probably what needs to happen here.

 

So, two things to watch for which may help avoid creating new regressions:

1.       Go ahead and show the “; ELSE” comment in an IF statement when both conditions are being coded up.

2.       Use the “(progn “ flag to group two or more lines of code together that need to execute for a single condition of the IF statement

posted on 2008-08-08 13:46 Mike Song 閱讀(117) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲一区二区三区| 国产日韩欧美在线播放不卡| 午夜精品一区二区在线观看 | 亚洲日本欧美天堂| 欧美主播一区二区三区| 亚洲深夜影院| 亚洲视频 欧洲视频| 加勒比av一区二区| 狠狠爱www人成狠狠爱综合网| 国产精品久久一区二区三区| 欧美成人乱码一区二区三区| 久久婷婷成人综合色| 欧美专区在线播放| 欧美在线视频免费| 亚洲国产日本| 99riav久久精品riav| 亚洲视频精品| 欧美成人首页| 国产精品欧美经典| 在线看片第一页欧美| 亚洲欧洲另类| 午夜精品福利在线| 亚洲第一区在线| 亚洲国产综合91精品麻豆| 洋洋av久久久久久久一区| 欧美一区二区高清| 欧美激情中文不卡| 国产精品久久久久久久久婷婷| 国产精品手机视频| 一个色综合av| 欧美电影在线观看| 99re66热这里只有精品4| 在线精品视频在线观看高清| 亚洲国产日韩在线一区模特| 亚洲天堂免费观看| 亚洲人体大胆视频| 久久精品国产精品亚洲精品| 欧美日韩天堂| 亚洲经典一区| 美女黄毛**国产精品啪啪| 免费成人性网站| 亚洲欧美成人一区二区三区| 欧美日韩亚洲一区二区三区在线 | 久久综合久久久| 精品成人一区二区| 久久久噜噜噜| 老鸭窝毛片一区二区三区| 久久久综合网| 国产精品99久久久久久白浆小说| 久久久999精品视频| 欧美一级专区| 亚洲电影免费在线| 91久久久久久久久| 欧美三级电影精品| 久久成人精品视频| 久久久水蜜桃| 激情综合电影网| 亚洲福利视频专区| 欧美日韩aaaaa| 一区二区三区视频在线观看| 亚洲精品永久免费| 国产精品久久久久久av下载红粉 | 性视频1819p久久| 亚洲免费视频一区二区| 国内精品久久久| 亚洲欧美一区在线| 久久天堂成人| 欧美在线影院在线视频| 欧美成人一区二区三区| 亚洲一区三区视频在线观看| 亚洲欧美日韩区| 老司机免费视频久久| 国产精品久久久久永久免费观看| 久久亚裔精品欧美| 国产精品看片资源| 欧美激情精品久久久久久变态| 欧美日韩成人一区二区三区| 久久久欧美一区二区| 欧美日韩视频第一区| 亚洲国产一区二区三区a毛片 | 欧美国产精品中文字幕| 国产精品99免视看9| 欧美成人免费网站| 韩国一区二区在线观看| 日韩一级免费观看| 亚洲精选视频在线| 奶水喷射视频一区| 欧美成人资源网| 在线成人中文字幕| 久久亚洲精品一区| 亚洲国产一二三| 国产精品乱人伦一区二区 | 99日韩精品| 一区二区欧美精品| 欧美小视频在线观看| 最新亚洲电影| 亚洲一区三区电影在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 99pao成人国产永久免费视频| 亚洲四色影视在线观看| 国产日韩欧美在线| 欧美电影免费观看高清完整版| 亚洲电影在线播放| 亚洲免费在线精品一区| 国产一区二区三区无遮挡| 久久久亚洲国产美女国产盗摄| 久久亚洲精品视频| 99国产精品久久久久老师| 国产精品久久国产精品99gif | 亚洲人成在线影院| 欧美色图首页| 久久精品免费播放| 亚洲美女色禁图| 久久久久久久久岛国免费| 亚洲人成在线播放| 国产主播精品| 欧美aaa级| 亚洲一二三区在线| 91久久在线观看| 老司机久久99久久精品播放免费 | 亚洲色在线视频| 亚洲国产成人午夜在线一区| 欧美一区二区成人| 中文在线资源观看网站视频免费不卡| 国产亚洲制服色| 亚洲国产婷婷| 欧美成人资源| 亚洲国产精品日韩| 欧美成人午夜影院| 蜜桃av一区| 欧美国产精品一区| 亚洲国产电影| 亚洲三级影院| 亚洲欧洲三级| 在线亚洲精品| 久久精品盗摄| 欧美69wwwcom| 欧美日韩中文字幕精品| 欧美日韩成人| 国产一区二区在线观看免费播放| 国产日韩欧美在线观看| 亚洲第一区在线| 一本色道久久综合狠狠躁篇怎么玩 | 久久婷婷av| 欧美成人免费网站| 亚洲福利视频三区| 欧美诱惑福利视频| 欧美电影在线观看| 日韩视频在线免费| 欧美在线亚洲综合一区| 欧美大片免费观看| 国产视频欧美| 欧美亚洲日本一区| 欧美激情综合| 亚洲欧美激情四射在线日| 久久免费一区| 国产综合香蕉五月婷在线| 99re热这里只有精品视频| 裸体歌舞表演一区二区| 亚洲伊人伊色伊影伊综合网| 美女视频一区免费观看| 日韩亚洲一区在线播放| 久久躁日日躁aaaaxxxx| 久久电影一区| 久久成年人视频| 精品不卡一区| 免费在线观看成人av| 久久在线视频| 亚洲一区二区在线播放| 亚洲手机视频| 国产一区二区三区无遮挡| 性欧美videos另类喷潮| 亚洲美女淫视频| 国产精品天天看| 久久人人爽人人| 欧美黑人多人双交| 一区二区三区国产在线| 亚洲麻豆一区| 激情亚洲网站| 欧美激情一区二区三区四区| 欧美国产精品劲爆| 久久gogo国模啪啪人体图| 久久欧美肥婆一二区| 一区二区三区高清不卡| 一区二区三区欧美在线观看| 国产日韩专区在线| 91久久午夜| 国产欧美一级| 日韩视频在线一区| 91久久久一线二线三线品牌| 国产精品久久久久久久久搜平片| 久久欧美中文字幕| 欧美三级视频在线观看| 免费观看在线综合| 久久一本综合频道| 亚洲一区二区三区高清| 亚洲精品韩国| 欧美成人伊人久久综合网| 嫩草成人www欧美| 尤物九九久久国产精品的分类|