手機(jī)網(wǎng)站導(dǎo)航設(shè)計(jì)模板seo網(wǎng)站關(guān)鍵詞優(yōu)化費(fèi)用
C#基礎(chǔ)知識(shí) - 操作數(shù)與運(yùn)算符篇
- 4.2 運(yùn)算符
- 4.2.1 按操作數(shù)個(gè)數(shù)分類
- 4.2.2 按運(yùn)算類型分類
- 4.2.3 對(duì)運(yùn)算符 ++、-- 的使用
- 4.2.4 關(guān)系運(yùn)算符:>、 < 、>= 、<=、 != 、==
- 4.2.5 邏輯運(yùn)算符:&& || ! ^ & |
- 4.2.6 位運(yùn)算符:~ 、^、 & 、| 、<<、 >>
- 4.2.7 條件運(yùn)算符:表達(dá)式1?表達(dá)式2:表達(dá)式3
- 4.3 對(duì)運(yùn)算符的綜合運(yùn)用
更多C#基礎(chǔ)知識(shí)詳解請(qǐng)查看:C#基礎(chǔ)知識(shí) - 從入門到放棄
4.2 運(yùn)算符
4.2.1 按操作數(shù)個(gè)數(shù)分類
C#中,運(yùn)算符可以根據(jù)其操作數(shù)的個(gè)數(shù)分為一元、二元和三元運(yùn)算符。
1、一元運(yùn)算符(Unary Operators)
一元運(yùn)算符只操作一個(gè)操作數(shù),有以下常用:
遞增運(yùn)算符 (++), 遞減運(yùn)算符 (–), 正號(hào)運(yùn)算符 (+), 負(fù)號(hào)運(yùn)算符 (-), 邏輯非運(yùn)算符 (!), 位取反運(yùn)算符 (~) 等。
2、二元運(yùn)算符(Binary Operators)
二元運(yùn)算符操作兩個(gè)操作數(shù),有以下常用:
算術(shù)運(yùn)算符 (+, -, *, /, %), 關(guān)系運(yùn)算符 (==, !=, >, <, >=, <=), 邏輯與運(yùn)算符 (&&), 邏輯或運(yùn)算符 (||), 位與運(yùn)算符 (&), 位或運(yùn)算符 (|), 位異或運(yùn)算符 (^), 左移運(yùn)算符 (<<), 右移運(yùn)算符 (>>) 等。
3、三元運(yùn)算符(Ternary Operators)
三元運(yùn)算符操作三個(gè)操作數(shù),C#中僅有一個(gè):
條件運(yùn)算符 (condition ? trueValue : falseValue)。
4.2.2 按運(yùn)算類型分類
1、算術(shù)運(yùn)算符:
加法運(yùn)算符:+
減法運(yùn)算符:-
乘法運(yùn)算符:*
除法運(yùn)算符:/
取余運(yùn)算符:%
2、關(guān)系運(yùn)算符:
相等運(yùn)算符:==
不相等運(yùn)算符:!=
大于運(yùn)算符:>
小于運(yùn)算符:<
大于等于運(yùn)算符:>=
小于等于運(yùn)算符:<=
3、邏輯運(yùn)算符:
邏輯與運(yùn)算符:&&
邏輯或運(yùn)算符:||
邏輯非運(yùn)算符:!
4、賦值運(yùn)算符:
簡(jiǎn)單賦值運(yùn)算符:=
復(fù)合賦值運(yùn)算符:+=, -=, *=, /=, %=
5、位運(yùn)算符:
按位與運(yùn)算符:&
按位或運(yùn)算符:|
按位異或運(yùn)算符:^
按位取反運(yùn)算符:~
左移運(yùn)算符:<<
右移運(yùn)算符:>>
6、條件運(yùn)算符:
條件表達(dá)式運(yùn)算符:?:
7、成員訪問和索引運(yùn)算符:
成員訪問運(yùn)算符:.
索引訪問運(yùn)算符:[ ]
8、遞增和遞減運(yùn)算符:
遞增運(yùn)算符:++
遞減運(yùn)算符:--
【示例】輸入語文和數(shù)學(xué)成績(jī),打印出總成績(jī)。
程序如下:
Console.WriteLine("請(qǐng)輸入語文成績(jī):"); //輸出
double Chinese = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請(qǐng)輸入數(shù)學(xué)成績(jī):");
double Math = Convert.ToDouble(Console.ReadLine());
//Convert.ToDouble - 類型轉(zhuǎn)換
//Console>ReadLine();默認(rèn)是string類型,但是我們聲明的變量是double類型,在接收到數(shù)據(jù)后需要轉(zhuǎn)換類型
Console.WriteLine("你的總成績(jī)是{0}", Chinese + Math);
Console.ReadKey();
執(zhí)行程序:
請(qǐng)輸入語文成績(jī):
86
請(qǐng)輸入數(shù)學(xué)成績(jī):
93
你的總成績(jī)是179
4.2.3 對(duì)運(yùn)算符 ++、-- 的使用
++在前,先加再用;++在后,先用后加。(-- 相同)
程序代碼:
int var1, var2, var3;
var1 = 2;
Console.WriteLine("var1的值是"+var1);
var2 = var1++; //先用后加,var2=2,var1=3
Console.WriteLine("var2的值是{0},此時(shí)var1的值是{1}" , var2,var1);
var3 = ++var1; //先加后用,var1=3+1=4,var3=4
Console.WriteLine("var3的值是{0},此時(shí)var1的值是{1}" ,var3, var1);
//提示:var1沒有重新賦過值,并且一直在使用
Console.ReadKey();
運(yùn)行程序:
var1的值是2
var2的值是2,此時(shí)var1的值是3
var3的值是4,此時(shí)var1的值是4
4.2.4 關(guān)系運(yùn)算符:>、 < 、>= 、<=、 != 、==
運(yùn)算后的結(jié)果是布爾值bool
,true
或者false
關(guān)系運(yùn)算符的運(yùn)算規(guī)則:
① 操作數(shù)為數(shù)值類型,則比較兩個(gè)數(shù)的大小;
② 操作數(shù)為字符類型,則比較兩個(gè)字符串的Unicode編碼大小;
③ 操作數(shù)為i盎格字符串,則只能用==或者!=,只能比較字符串各個(gè)位字符是否相同
4.2.5 邏輯運(yùn)算符:&& || ! ^ & |
邏輯符 | 結(jié)果 |
---|---|
& & | 全true為true |
ll | 有true為true |
! | 取反!true=false;!false=true |
^ | 有且只有一個(gè)true為true |
& | 全true為true |
l | 有true為true |
在運(yùn)用邏輯運(yùn)算符表達(dá)式中需要注意運(yùn)算優(yōu)先級(jí)及運(yùn)算特性,一下程序?yàn)槔?#xff1a;
int a = 10;
int b = 15;
Console.WriteLine((10 == a++) || (16 == b--)); //結(jié)果為 True
Console.WriteLine("a的值為{0},b的值為{1}", a, b); //a=11,b=15
//在||運(yùn)算后當(dāng)前面一個(gè)表達(dá)式為true就不會(huì)運(yùn)算后面表達(dá)式,b--沒有執(zhí)行,b=15
Console.ReadKey();
運(yùn)行程序:
True
a的值為11,b的值為15
結(jié)果可見,b的值未發(fā)生變化,這是因?yàn)樵?||
運(yùn)算后當(dāng)前面一個(gè)表達(dá)式為true
就不會(huì)執(zhí)行運(yùn)算后面表達(dá)式,所以 b-- 不會(huì)被執(zhí)行。
4.2.6 位運(yùn)算符:~ 、^、 & 、| 、<<、 >>
運(yùn)算符 | 結(jié)果 |
---|---|
~ | 按位取反 |
l | 有1為1 |
& | 全1為1 |
^ | 異或:有且僅有一個(gè)1為1 |
<< var3 = var1 << var2 將var1d的值左移var2位賦值給var3
>> var3 = var1 >> var2 將var1d的值右移var2位賦值給var3
如果對(duì)十進(jìn)制數(shù)字進(jìn)行位運(yùn)算符,需要將其轉(zhuǎn)為二進(jìn)制數(shù)據(jù)計(jì)算后在轉(zhuǎn)為十進(jìn)制結(jié)果。
【示例】5 & 4 =?
5的二進(jìn)制表示:101
4的二進(jìn)制表示:100
5 & 4的結(jié)果位:100 即為4
【示例】4 << 1 =?(左移乘2)
4 的二進(jìn)制表示:100
左移一位后表示:1000 即為8
【示例】4 >> 1 =?(右移除2)
4 的二進(jìn)制表示:100
右移一位后表示:010 即為2
4.2.7 條件運(yùn)算符:表達(dá)式1?表達(dá)式2:表達(dá)式3
【示例】根據(jù)輸入的數(shù)量,判斷輸出輸出語句“I have 數(shù)量 pen(s)”。
程序代碼:
//輸出語句“I have 數(shù)量 pen(s)”
Console.WriteLine("輸入擁有的鋼筆數(shù)量:");
int qty = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("I have {0} pen{1}", qty, qty > 1 ? "s" : "");
Console.ReadKey();
運(yùn)行程序:
輸入擁有的鋼筆數(shù)量:
1
I have 1 pen輸入擁有的鋼筆數(shù)量:
5
I have 5 pens
4.3 對(duì)運(yùn)算符的綜合運(yùn)用
【示例】計(jì)算1232855秒是幾天幾小時(shí)幾分幾秒。
程序代碼:
int time = 1232855;
int day = time / (24 * 3600);
int hour = time % (24 * 3600) / 3600;
int min = time % 3600 / 60;
int sec = time % 60;
Console.WriteLine("{0}秒是{1}天{2}小時(shí){3}分種{4}秒", time, day, hour, min, sec);
Console.ReadKey();
運(yùn)行結(jié)果:
1232855秒是14天6小時(shí)27分種35秒