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

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 閱讀(120) 評論(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>
            久久综合国产精品| 午夜国产精品视频免费体验区| 国产精品久久久久99| 免费亚洲婷婷| 国产亚洲精品aa午夜观看| 一本色道久久| 99成人在线| 欧美激情一区二区在线 | 六月天综合网| 国产欧美日本在线| 亚洲午夜高清视频| 在线性视频日韩欧美| 欧美电影电视剧在线观看| 老司机免费视频一区二区| 国产日韩欧美综合一区| 亚洲尤物在线| 午夜视频在线观看一区| 国产精品久久久久毛片大屁完整版| 亚洲欧洲精品一区二区精品久久久| 国产一区999| 欧美中文在线免费| 久久久水蜜桃av免费网站| 国产三级精品三级| 欧美专区日韩专区| 久久久久久黄| 国一区二区在线观看| 久久久99久久精品女同性| 久久亚洲一区二区三区四区| 国模叶桐国产精品一区| 久久精品免费| 亚洲第一毛片| 亚洲视频图片小说| 国产精品福利av| 亚洲欧美日韩国产综合| 久久久国产91| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲黄色性网站| 免费在线亚洲| 夜夜嗨av一区二区三区中文字幕| 亚洲在线观看视频网站| 国产精品亚洲激情| 久久久久久久久蜜桃| 亚洲电影毛片| 亚洲欧美国产不卡| 韩国精品久久久999| 免费观看亚洲视频大全| 一本色道久久综合亚洲精品小说| 午夜精品久久99蜜桃的功能介绍| 国产亚洲一区二区三区| 男同欧美伦乱| 亚洲新中文字幕| 美女爽到呻吟久久久久| 夜久久久久久| 国产一区二区三区精品久久久| 久久综合伊人77777尤物| 99视频有精品| 玖玖在线精品| 亚洲欧美激情一区| 亚洲国产成人精品久久| 欧美性事免费在线观看| 久久久国产午夜精品| 99这里有精品| 欧美ab在线视频| 性做久久久久久久久| 亚洲国产毛片完整版| 国产精品视频导航| 欧美顶级艳妇交换群宴| 欧美亚洲视频在线看网址| 亚洲国产美女| 久久午夜精品一区二区| 亚洲香蕉视频| 亚洲日韩第九十九页| 国产日韩欧美精品一区| 欧美日韩另类字幕中文| 久久婷婷成人综合色| 亚洲欧美日韩国产一区| 亚洲理伦在线| 欧美高清视频在线观看| 久久久国产亚洲精品| 一区二区三区国产盗摄| 亚洲黄色在线视频| 一区二区三区在线免费观看| 国产精品日韩在线播放| 欧美日韩国产一区二区三区地区 | 午夜精品久久久久久久99樱桃| 亚洲国产日日夜夜| 嫩草国产精品入口| 久久精品女人| 欧美在线免费| 亚洲欧美视频一区| 亚洲性人人天天夜夜摸| 日韩视频免费在线观看| 亚洲国产视频一区| 1769国产精品| 在线高清一区| 永久免费精品影视网站| 国产在线播精品第三| 国产农村妇女精品一区二区| 国产精品99免费看 | 午夜精品一区二区三区在线视| 亚洲伦伦在线| 亚洲免费不卡| 日韩视频在线永久播放| 亚洲精品美女在线观看播放| 亚洲品质自拍| 亚洲免费av片| 99热免费精品| 一区二区三区黄色| 亚洲深夜福利网站| 亚洲一区二区三区精品在线观看| 一区二区激情小说| 亚洲一区二区在线看| 亚洲综合导航| 欧美一区二区三区免费视| 欧美亚洲在线观看| 久久精品中文字幕一区| 老牛国产精品一区的观看方式| 久久免费国产精品1| 美女图片一区二区| 亚洲高清一区二区三区| 亚洲日本欧美日韩高观看| 亚洲精品一区二区三区不| 宅男噜噜噜66一区二区| 亚洲欧美日韩国产成人| 久久九九热re6这里有精品| 另类综合日韩欧美亚洲| 欧美激情一区二区在线| 国产精品国产三级国产| 国产一区二区成人| 亚洲国内精品| 亚洲免费视频网站| 久久全球大尺度高清视频| 欧美电影在线观看| 亚洲美女精品成人在线视频| 亚洲免费影视| 久久亚洲一区二区| 欧美天天综合网| 黄色另类av| 99国产精品久久久久老师| 午夜视频在线观看一区二区三区| 久久伊人免费视频| 亚洲伦理在线观看| 久久精品人人做人人综合| 欧美激情精品久久久久| 国产九九精品| 亚洲三级影院| 久久久久久久久蜜桃| 亚洲国产日韩欧美在线图片| 亚洲一区二区av电影| 欧美xxxx在线观看| 国产欧美日韩精品在线| 9色porny自拍视频一区二区| 久久久91精品国产一区二区精品| 91久久综合| 久久精品国产2020观看福利| 欧美日韩性生活视频| 1024精品一区二区三区| 午夜精品一区二区三区在线| 亚洲国产另类久久精品| 久久成人免费网| 国产精品大片| 亚洲乱码一区二区| 母乳一区在线观看| 午夜精品一区二区三区在线| 欧美大片18| 亚洲高清av在线| 久久青草福利网站| 亚洲一区二区三区精品视频| 欧美黄色精品| 亚洲黄一区二区三区| 久久久国产视频91| 亚洲伊人观看| 欧美性做爰猛烈叫床潮| av不卡在线看| 亚洲欧洲一区二区三区久久| 久久免费视频在线| 黄色av一区| 久久久久在线| 欧美在线三区| 国产人成精品一区二区三| 亚洲欧美制服另类日韩| 夜夜嗨av一区二区三区中文字幕| 牛夜精品久久久久久久99黑人 | 国产婷婷色一区二区三区四区| 亚洲天堂激情| 日韩视频―中文字幕| 欧美精品一区二区三区很污很色的 | 91久久精品日日躁夜夜躁欧美 | 久久久不卡网国产精品一区| 国产精品一区在线观看你懂的| 亚洲一区成人| 99国产精品视频免费观看| 欧美精品一区二区视频| 日韩亚洲精品在线| 亚洲三级免费电影| 欧美日韩国产在线播放| 亚洲午夜伦理| 亚洲夜晚福利在线观看| 国产模特精品视频久久久久 | 亚洲精品日韩在线|