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

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| 农夫在线精品视频免费观看| 亚洲大片精品永久免费| 国产精品视频一二三| 久久青青草原一区二区| 亚洲欧美日韩一区在线| 亚洲激情在线观看| 欧美一区二区三区在线看| 亚洲视频在线看| 91久久国产综合久久| 欧美日韩在线一区二区三区| 噜噜爱69成人精品| 欧美一二三视频| 亚洲一区在线直播| 亚洲精品老司机| 欧美成年人视频网站| 久久aⅴ国产欧美74aaa| 一区二区三区日韩精品| 亚洲国产日韩精品| 亚洲国产精品成人| 国内偷自视频区视频综合| 亚洲天堂av在线免费观看| 亚洲丰满在线| 免费国产一区二区| 久久综合狠狠| 久久福利毛片| 一区二区三区国产精品| 日韩亚洲精品在线| 在线精品亚洲| 在线观看91精品国产麻豆| 国产性做久久久久久| 国产精品女人毛片| 国产精品青草久久久久福利99| 欧美理论电影在线观看| 欧美高清不卡在线| 老**午夜毛片一区二区三区| 久久精视频免费在线久久完整在线看| 欧美一区二区三区电影在线观看| 亚洲一区二区三区高清| 亚洲欧美在线看| 亚洲一区二区精品视频| 亚洲作爱视频| 亚洲免费视频在线观看| 亚洲视频自拍偷拍| 香蕉久久久久久久av网站| 午夜精品视频在线观看一区二区| 亚洲先锋成人| 欧美影视一区| 久久成人18免费观看| 久久久久久久久伊人| 久久乐国产精品| 久久婷婷麻豆| 欧美 日韩 国产 一区| 欧美大色视频| 午夜精品久久久久久久99樱桃| 欧美影视一区| 久久久亚洲高清| 欧美激情一区二区三区在线| 美女主播视频一区| 久久久欧美精品sm网站| 久久米奇亚洲| 欧美成人综合| 久久精品夜色噜噜亚洲a∨| 久久久久久亚洲精品中文字幕| 久久美女性网| 欧美成人影音| 亚洲日韩欧美视频一区| 一区二区三区视频在线播放| 午夜天堂精品久久久久| 久久久av毛片精品| 欧美激情无毛| 国产精品久久午夜| 国产在线观看91精品一区| 狠狠爱www人成狠狠爱综合网| 激情综合网址| 日韩视频三区| 亚洲综合第一页| 久久亚洲不卡| 亚洲激情在线| 亚洲欧美日韩国产另类专区| 久久精品夜色噜噜亚洲aⅴ| 欧美91视频| 国产精品久久久久av免费| 国产综合亚洲精品一区二| 艳女tv在线观看国产一区| 午夜国产精品影院在线观看| 欧美成人免费全部| 日韩亚洲不卡在线| 巨乳诱惑日韩免费av| 一区二区三区三区在线| 久久精品夜夜夜夜久久| 欧美日本国产一区| 国产日韩精品视频一区二区三区| 国产日韩欧美精品综合| 亚洲经典自拍| 一区二区免费在线观看| 久久激情中文| 亚洲国产片色| 久久久久久久久岛国免费| 欧美日韩另类国产亚洲欧美一级| 欧美日韩亚洲综合在线| 亚洲电影欧美电影有声小说| 亚洲一区二区三区乱码aⅴ| 欧美成人国产一区二区| 亚洲视频精品在线| 久久色在线观看| 国产精品久久久久久久久动漫| 国产农村妇女精品| 亚洲午夜一区| 欧美福利视频在线| 久久久久成人精品免费播放动漫| 欧美四级伦理在线| 一本色道**综合亚洲精品蜜桃冫 | 国产精品va在线播放| 亚洲日本在线视频观看| 久久成人精品无人区| 一本一道久久综合狠狠老精东影业 | 99re亚洲国产精品| 久久在线播放| 亚洲一级片在线看| 欧美日韩天堂| 亚洲精品一区二区三区不| 美女福利精品视频| 午夜精品美女自拍福到在线 | 亚洲欧美久久久| 亚洲国产精品va| 久久久免费精品| 国产精品夜夜夜| 亚洲欧美日韩一区二区三区在线 | 亚洲欧美日韩精品| 欧美精品一区二区在线播放| 亚洲日本一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久综合色影院| 午夜精品久久久久久久99水蜜桃 | 久热精品在线视频| 久久精品综合一区| 国产亚洲欧美日韩一区二区| 欧美一区二区三区四区高清| 中文精品视频一区二区在线观看| 欧美日韩国产色站一区二区三区| 一本久久a久久免费精品不卡| 亚洲成色777777在线观看影院| 老司机aⅴ在线精品导航| 激情自拍一区| 欧美韩国一区| 美日韩精品免费| 欧美激情精品久久久久久变态| 亚洲黄色毛片| 亚洲国产精品久久久久| 亚洲国产精品第一区二区| 久久久久久网站| 黄色日韩在线| 久久天天综合| 欧美xx视频| 99在线精品免费视频九九视| 99日韩精品| 一本综合精品| 欧美阿v一级看视频| 一区二区欧美亚洲| 亚洲裸体俱乐部裸体舞表演av| 欧美日韩在线播放| 亚洲午夜激情免费视频| 欧美在线啊v| 国产视频一区在线观看| 美女福利精品视频| 男女视频一区二区| 尤物网精品视频| 亚洲人成精品久久久久| 欧美日韩高清在线| 欧美一区=区| 欧美一区二区三区视频| 亚洲电影在线| 亚洲国产三级在线| 国产精品高清免费在线观看| 欧美一区二区观看视频| 亚洲一区二区欧美| 亚洲电影激情视频网站| 亚洲精品国产精品久久清纯直播 | 91久久国产综合久久91精品网站| 欧美国产日本高清在线| 亚洲桃花岛网站| 午夜在线成人av| 亚洲国产精品成人精品| 欧美暴力喷水在线| 欧美精品在线免费播放| 午夜精品久久久久久久男人的天堂| 午夜亚洲福利| 亚洲国产欧美久久| 亚洲一区视频在线观看视频| 韩国v欧美v日本v亚洲v| 亚洲狼人综合| 国产欧美日本| 亚洲精品亚洲人成人网| 国产精品一区视频| 亚洲国产一区二区精品专区| 国产女人水真多18毛片18精品视频| 伊人久久成人|