C# 表達(dá)式 數(shù)學(xué)運(yùn)算符
有5個(gè)簡(jiǎn)單的數(shù)學(xué)運(yùn)算符,其中兩個(gè)(+和_)有二元和一元兩種形式。表34列出了這些運(yùn)算符,并用一個(gè) 簡(jiǎn)短示例來(lái)說(shuō)明它們的用法,以及使用簡(jiǎn)單的數(shù)值類(lèi)型(整數(shù)和浮點(diǎn)數(shù))時(shí)它們的結(jié)果。
運(yùn)算符 | 類(lèi) 別 | 示例表達(dá)式 | 結(jié)果 |
+ | 二元 | varl = var2 + var3; | varl的值是var2與var3的和 |
- | 二元 | varl = var2 - var3; | varl的值是從var2減去var3所得的值 |
準(zhǔn) | 二元 | varl = var2 * var3; | varl的值是var2與var3的乘積 |
/ | 二元 | varl = var2 / var3; | varl是var2除以var3所得的值 |
% | 二元 | varl = var2 % var3; | varl是var2除以var3所得的余數(shù) |
+ | —元 | varl = +var2; | varl的值等于var2的值 |
- | 一元 | varl = -var2; | varl的值等于var2的值乘以-1 |
注意:
+(—元■算符有點(diǎn)古怪,因?yàn)開(kāi)它對(duì)結(jié)果沒(méi)有影響.:它不會(huì)把值變成正的:..如果var2是-1,別+\?12仍是-1. 但這是一個(gè)得到普遍認(rèn)可的運(yùn)算符,^■以也把它包含進(jìn)來(lái)。這個(gè)運(yùn)算符最有用的方面是,可以定制它妁樣作, 本書(shū)在后面探討運(yùn)算符的舍載時(shí)會(huì)外為它。
上面的示例都使用簡(jiǎn)單的數(shù)值類(lèi)型,因?yàn)槭褂闷渌?jiǎn)單類(lèi)型,結(jié)果可能不太清晰。例如把兩個(gè)布爾值加在 —起,會(huì)得到什么結(jié)果?因此,如果對(duì)bool變量使用+(或其他數(shù)學(xué)運(yùn)算符),編譯器會(huì)報(bào)錯(cuò)。chai?變量的相加也 會(huì)有點(diǎn)讓人摸不著頭腦。記住,char變量實(shí)際上存儲(chǔ)的是數(shù)字,所以把兩個(gè)chai?變量加在一起也會(huì)得到一個(gè)數(shù) 字(其類(lèi)型為int)。這是一個(gè)隱式轉(zhuǎn)換示例,稍后將詳細(xì)介紹這個(gè)主題和顯式轉(zhuǎn)換,因?yàn)樗部梢詰?yīng)用到varl、 var2和var3是混合類(lèi)型的情況。
二元運(yùn)算符+在用于字符串類(lèi)型變量時(shí)也是有意義的。此時(shí),它的作用如表3-7所示。
運(yùn)算符 | 類(lèi) 別 | 示例表達(dá)式 | 結(jié) 果 |
+ | 二元 | varl = var2 + var3; | varl的值是存儲(chǔ)在var2和var3中的兩個(gè)字符串的連 |
接值 |
但其他數(shù)學(xué)運(yùn)算符不能用于處理字符串。
這里應(yīng)介紹的另兩個(gè)運(yùn)算符是遞増和遞減運(yùn)算符,它們都是一元運(yùn)算符,可通過(guò)兩種方式來(lái)使用它們:放 在操作數(shù)的前面或后面。簡(jiǎn)單表達(dá)式的結(jié)果如表3-8所示。
運(yùn)算符 | 類(lèi) 別 | 示例表達(dá)式 | 結(jié)果 |
++ | 一元 | varl = -H-var2; | varl 的值是 var2 + 1,var2遞増 1 |
— | 一元 | varl = - -var2; | varl 的值是 var2 - 1,var2遞減 1 |
++ | *兀 | varl = var2++; | varl的值是var2,var2遞增1 |
— | 一元 | varl = var2——; | varl的值是var2,var2遞減1 |
這些運(yùn)算符會(huì)改變存儲(chǔ)在操作數(shù)中的值。
?++總是使操作數(shù)加1
?--總是使操作數(shù)減1
varl中存儲(chǔ)的結(jié)果有區(qū)別,其原因是運(yùn)算符的位置決定了它什么時(shí)候發(fā)揮作用。把運(yùn)算符放在操作數(shù)的前 面,則操作數(shù)是在進(jìn)行任何其他計(jì)算前受到運(yùn)算符的影響;而如果把運(yùn)算符放在操作數(shù)的后面,則操作數(shù)是在 完成表達(dá)式的計(jì)算后受到運(yùn)算符的影響。
再看一個(gè)示例??紤]以下代碼:
int varl, var2 = 5, var3 = 6; varl = var2++ * ——var3;
要把什么值賦予varl?在計(jì)算表達(dá)式前,var3前面的運(yùn)算符--會(huì)起作用,把它的值從6改為5??梢院雎?var2后面的++運(yùn)算符,因?yàn)樗窃谟?jì)算完成后才發(fā)揮作用,所以varl的結(jié)果是5與5的乘積,即25。 許多情況下,這些簡(jiǎn)單的一元運(yùn)算符使用起來(lái)非常方便,它們實(shí)際上是下述表達(dá)式的簡(jiǎn)寫(xiě)形式:
varl = varl +1;
這類(lèi)表達(dá)式有許多用途,特別適于在循環(huán)中使用。
點(diǎn)擊加載更多評(píng)論>>