用乙個小程式重新認識「 」與「 」

2022-03-31 09:39:42 字數 1551 閱讀 7901

上午寫了個提cad pl拐點的程式,很簡單,但是遇到提示選擇時用esc取消cad就會報錯。程式如下:

**

using system;

using

system.text;

using

using

autodesk.autocad.runtime;

using

autodesk.autocad.databaseservices;

using

autodesk.autocad.editorinput;

using

autodesk.autocad.geometry;

using

system.io;

[assembly:commandclass(

typeof

(提拐點座標.class1))]

/**/

namespace

提拐點座標

public

void

terminate()

editor ed ==

="gd"

)]public

void

test()

;promptselectionresult sr

=ed.getselection(ps,

newselectionfilter(filter));

if(sr.status

==promptstatus.ok

&&sr.value.count !=0

)}sw.close();

system.diagnostics.process.start(

"notepad.exe",

@"c://點座標.txt");

} }}

finally}}

}

主程式沒有問題,程式中能報錯的地方只有if (sr.status == promptstatus.ok & sr.value.count != 0)

這句,如果選擇被取消sr.status應該為promptstatus.cancel,sr.status == promptstatus.ok 這句沒有問題,如果有問題就可能出現再sr.value.count != 0這句。即如果程式判斷出sr.status == promptstatus.ok為false仍然要執行

sr.value.count != 0這句的話cad就會報錯。

檢視msdn上關於「&」的解釋為:&運算子計算兩個運算子,與第乙個運算元的值無關。

再檢視關於「&&」的解釋:

x && y

對應於操作

x & y

不同的是,如果xfalse,則不計算y(因為不論y為何值,「與」操作的結果都為false)。這被稱作為「短路」計算。

不能過載條件「與」運算子,但常規邏輯運算子和運算子 true 與 false 的過載,在某些限制條件下也被視為條件邏輯運算子的過載。

乙個小程式重新透視C語言Switch語句

最近看berkerly db的源 在hash函式的hash4中一段 讓我很困惑,將其簡化如下 ctest.c void testswitch int sw while loop int main 程式的輸出為 case 4 3 case 3 3 case 2 3 case 1 3 case 0 2 ...

乙個java小程式

能讓阿拉伯數字讀成符合漢語語法和漢語習慣的中文.就這我 還做了一天呢 鬱悶.public class itcs string unit1 new string string unit2 new string string str args 0 string str 2 null system.out...

乙個socket小程式

一直對c c 下的socket程式設計必是很熟悉,今天終於完成了乙個很簡單的server client程式 伺服器 include include pragma ment lib,ws2 32.lib using namespace std const int my error 1 int main...