今天我們學習的是c#中的一些符號,包括一些常用字元和運算子等。
首先來看乙個例子:
string playername = "馬里奧";
int playerlevel = 10;
int hp = 200;
float exp = 800.9f;
console.writeline("主角的名字為 主角的等級為 主角的血量為 主角的經驗值為", playername, playerlevel, hp, exp);
console.readline();
再看:
string playername = "馬里奧";
int playerlevel = 10;
int hp = 200;
float exp = 800.9f;
console.writeline("主角的名字為 \n主角的等級為 \n主角的血量為 \n主角的經驗值為", playername, playerlevel, hp, exp);
console.readline();
輸出結果:
我們看到,分行輸出了,但是只有乙個writeline()方法,再次比較一下,發現下面的方法多了三個」\n」,這個」\n」就是乙個換行符,它是轉義字元的一種。
轉義字元:就是意義被轉換後的字元。
如」\n」,雖然由」\」和」n」組成,但它是乙個字元,本來」n」表示的是乙個字母n,但是前面加了乙個」\」後它的意義就發生轉變了!變成了換行符,這個換行符負責將字串換行,即使它是在雙引號中,也不會被當作字串的一部分,而是被編譯器識別為換行符。
同樣的,與」\n」相似的還有\」以及\t等一系列轉義字元。
\」是對引號進行轉義,比如我們想輸出:paul是乙個「超人」!
我們不能這樣輸出:
console.writeline("paul是乙個"超人"");
這是錯誤的,編譯器會對引號進行配對,上面這是兩個字串:」paul是乙個」和」「空字串,它們中間夾了乙個「超人」,這是錯誤的格式。
這時我們就要這樣輸出:
console.writeline("paul是乙個\"超人\"");
這裡我們就告訴編譯器:中間兩個引號不是c#中字串的引號,而是普通的字元,這樣就可以在字串中還能加引號。
\t是對t字元進行轉義,它的作用相當於tab鍵。
如:
console.writeline("\tpaul是乙個\"超人\"");
還有\』(單引號轉義) \0(將0轉義為空格) \r(回車) \(將轉義字元轉義為普通字元)等常用的轉義字元。
轉義字元都是以\開頭的。
下面再來說說在字串前面加上@字元會有什麼作用:
console.writeline(@"\tpaul是乙個超人");
輸出結果:
讓我們很吃驚,原本的\t水平製表符已經不起作用了,被當作字串的一部分了,那麼這就是@字元的第乙個作用:字串中的轉義字元將不被識別!
這個作用我們什麼時候能用得到呢?
設想這樣乙個前景:我要輸出的乙個字串恰好是乙個路徑:e:\learnforpaul\c#\books,我們用乙個普通字串怎麼輸出呢?因為路徑裡面有轉義字元,所以我們也要用轉義字元來轉義:
console.writeline("e:\\learnforpaul\\c#
\\books");
這樣看起來很奇怪,我們索性在前面加上@字元:
console.writeline(@"e:\learnforpaul\c#
\books");
這樣我們就不怕\字元是乙個轉義字元而產生輸出錯誤了,因為加了@後,\就已經失去意義變成乙個普通的字元了,所以正是我們想要的結果。
接下來:
我們可以看到,在輸出乙個字串時,字串中間是不允許換行的,否則會報錯。這是我們加上@字元:
馬上就正常了,這就是@字元的第二個作用:可以將乙個字串定義在多行中。
常用的轉義字元我們就說到這裡,下面說說運算子。
在說運算子之前我們先說說變數:前面我們介紹過變數,但是變數不是最重要的,重要的是變數的值,這個才是我們真正想要的。
變數的值叫做字面值,就是各個變數的具體數值,像true/false(作為值的時候為小寫)、50、100、25.5f、29.0、paul等都是字面值。
對於變數來說,宣告出來之後我們不能直接拿它去做運算,而是要初始化。
什麼叫初始化?
就是第一次給某個變數賦值就叫做初始化某乙個變數。
那第二次、第三次賦值叫什麼呢?當然就叫賦值了。
變數只有初始化之後才能使用。
在變數的宣告時,也可以用簡便的方法宣告:
int a=1,b,c=2,d;
在宣告的時候還可以進行初始化,但是要注意的是上面的a、b、c、d都是int型別的,也就是說用這種方法宣告的變數,型別一定是相同的,不會出現a、c是int型別的,而b、d是string型別的。
變數說完後就是數值型變數的運算了。
運算也分為一元運算、二元運算和三元運算,我們先看最簡單的二元運算:加、減、乘、除、求餘、求模。
二元運算是說運算子前後一共有兩個變數。
c=a+b; //加法運算
c=a-b; //減法運算
c=a*b; //乘法運算
c=a/b; //除法運算
c=a%b; //求餘運算也叫求模運算
這都非常簡單,下面看看一元運算子:根據二元運算付,我們可以知道一元運算子就是只有乙個變數的運算嘛,一開始可能會有疑問:乙個變數怎麼運算?其實這只是一種簡寫。
c++; //自增運算 相當於:c=c+1;
c--; //自減運算 相當於:c=c-1;
在自增和自減運算中,還要注意諸如c++與++c的區別。
int a=c++;
c--; //為了保持c的值相同,我們在自增後再恢復初值
int b=++c;
看起來a和b都是c的自增一次後的結果,但是它們兩個的值是不同的。
a是c自增加一后的值,而b是c自增加一前的值,因此它們是不同的。
同樣」–」也有相同的性質。
最後來看看三元運算子:」?:」
同樣的,三元運算子就涉及到三個變數。
int c=a>b?a:b;
這是乙個取兩個數中較大那個數的方法,這句話的意思是:a大於b嗎?如果a大於b,那麼c就等於a,否則的話(b大於a),c就等於b。
再來總結一下今天說了哪幾個問題:
轉義字元
@字元的作用以及應用
變數的宣告和初始化
三種運算:一元運算、二元運算和三元運算。
第二天學python
while else else是跟在while後的,while沒有被break打斷走else,被break打斷,不走else。utf 8 3個位元組表示乙個中文。中文全包括。至少用乙個位元組表示。unicode 4個位元組表示乙個中文。gbk 包含中文與英文本母,乙個中文用兩個位元組。不全。冪運算 ...
跟siki老師學C 第七天
今天我們要學習的內容是函式,也叫做方法。什麼叫方法?就是我們為了達到某個目的或者實現某項功能而設定的一系列步驟。為什麼要使用方法呢?我們在之前編寫的控制台應用程式都是寫在main 方法中的,在控制台應用程式中,程式的執行是以main 方法為程式入口的,也就是說無論你main 方法寫在 只要你執行這個...
跟siki老師學C 第八天
上一次我們學到方法的到時候說到乙個引數可以是陣列的情況 static void getarray int array 這裡是陣列作為乙個方法的引數,所以叫做陣列引數,還有乙個東西叫做引數陣列 在陣列引數中,我們在用這個方法的時候需要把我們自己構造的這個陣列傳過去作為引數,而引數陣列則不,它是在呼叫的...