C 本質論 第三章 操作符和控制流

2022-08-26 05:54:08 字數 2734 閱讀 9466

操作符通常分為3大類:一元操作符(正、負)、二元操作符(加、減、乘、除、取餘)和三元操作符( condition?consequence:alternative(consequence和alternative表示式型別要一致) ),它們對應的運算元分別是乙個、兩個和三個。

要是永遠括號增加**可讀性。

要用符合格式化而不是加法操作符來拼接字串。

可以用char型別相減求兩字母距離。

float具有七位精度:

錯誤**:

正確**

float n = 0.987654321f

; console.writeline(n);

//displays:

0.9876543

float n = 987654321;//

不加f也可以

console.writeline(n);

//displays:

9.876543e+8

二進位制浮點型別內部實際儲存的是二進位制分數而不是十進位制分數。所以,分母不是2的整數次冪的小數無法用二進位制浮點數準確表示。實際上,使用乙個接近十六位float的,並且分母為2整數次冪的分數來表示。double十五位有效數字。

double n = 140.6f

; console.writeline(n);

//displays:

140.600006103516

避免在需要準確的十進位制算術運算時使用二進位制浮點型別,而使用decimal浮點型。

double n = 140.63435423524252315

; console.writeline(n);

//displays:

140.634354235243

double n = 140.63435423524242315

; console.writeline(n);

//displays:

140.634354235242

所以,避免二進位制浮點型別用於相等性條件式。要麼判斷兩個值之差是否在容差範圍之內,要麼使用decimal型別。

float n =0f;

console.writeline(n/0

);//

displays: 非數字

console.writeline(

0/0);

//報錯:被常數零除

console.writeline(

0.0/0

);//

displays: 非數字

console.writeline(-1/0

);//

報錯:被常數零除

console.writeline(-1f/0

);//

displays: 負無窮大

console.writeline(1f/0

);//

displays: 正無窮大

復合賦值操作符:

1

char current = 'z'

;2intunicodevalue;3do

4=\t

",current,unicodevalue);

7 current--;

8 } while (current>='a'

);9 console.read();

int count = 123

;

intresult;

result = count++;

console .write("\t

",result,count);

console.readline();

//123 124

int count = 123

;

intresult;

result = ++count;

console .write("\t

",result,count);

console.readline();

//124 124

字首操作符的結果是變數遞增遞減之後的值,而字尾操作符的結果是變數遞增遞減之前的值。

不要用常量表示將來可能變化的任何值。 

空接合操作符(??)如果之前都是null,則表示最後乙個表示式。

x ?? y ?? z;
不要將移位操作符用作乘除法。

按位邏輯操作符:& | ^   不進行「短路求值」:& |

按位賦值操作符:&= |= ^=

取反操作符(~)

控制流:

do/while類似於while迴圈,區別在於它至少會迴圈一次。

foreach迴圈:

foreach(type variable in

collection)

statement

不要使用continue作為跳轉語句退出switch小節。

跳轉語句:break。

預處理指令:在編譯時呼叫

#region

#endregion

第三章 操作符

自增自減運算,這個位置相當容易錯。不過其實也很簡單,前向自增自減如 i 是先做運算,在使用i的值 後向自增自減則是在使用完i的當前值在對i進行運算。和equals 的區別是非常重要的。邏輯操作符 與ii有乙個短路的問題,如 表示式一 表示式二 一旦明確了整個式子的值就不會計算後面的表示式,即 表示式...

《C程式語言》 第三章 控制流

3.1 語句與程式塊 在表示式之後加上乙個分號 它們就變成了語句。用一對花括號 把一組宣告和語句括在一起就構成了程式塊,在語法上等價於單條語句。3.2 if else語句 每個else與最近的前乙個沒有else配對的if進行匹配。if n 0 if a b z a else z b 程式的縮排結構明...

java程式設計思想筆記 第三章 操作符

char c 0xffff 最大字串 byte b 0x80 最小位元組型 或byte b byte 0x80 long l 1 system.out.println long.tobinarystring l 64個1 l 10 system.out.println long.tobinaryst...