參考鏈結
[url]
平時碰到分支條件判斷最常用的是if else語句,不過有時要是分支條件太多用switch就更直觀,方便一點.先舉兩個簡單的例子.
[color=red][b]c++:[/b][/color]
int num = 2;
switch(num)
[color=red][b]c#:[/b][/color]
int num = 2;
switch (num)
c++,c#中swith的用法幾乎是一模一樣了.只有一些細小的差別,c#在c++的基礎上做了一點改進.
[color=red][b]區別:[/b][/color]
1. c++中switch()括號中的變數型別只能是整形或者能預設轉換成整形.比如[color=red]int,long,bool,char,enum[/color].(當然表示式也行,只要結果符合前面條件).但float,double,string就不行.另外自定義的型別,比如某個class,如果類中有運算子過載,class能預設轉換成int.那也可以.不過一般情況很少會在switch中用到自定義的型別吧
c#中switch()括號中的變數型別可以是[color=red]byte,short,int,long,bool,enum[/color]另外還有string,這個在c++中是不行的.跟c++一樣,可以用表示式,但float,double是不行的.自定義型別如可轉換也行.
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace ch04ex03
console.writeline("hello !", name);
console.readkey();}}
}
2. [color=red]c++中break是可以省略的[/color].但這樣容易造成乙個問題.如果沒有break當某個分支符合條件執行完了後,會接著執行後面的分支.在上面的例子中,如果break全部去掉.結果會是twothreedefault
[color=red]而c#要你強制性使用break[/color],不用的話在編譯時就會報錯.這樣就不會犯c++中因忘記寫break而出現的錯誤.
補充:其實也可以用return替換break.只不過return是表示退出整個函式,而break只是退出switch這個語句塊.
如果switch的語句塊中的邏輯比較複雜還可以綜合使用goto語句.
比如
int num = 2;
bool check = false;
switch (num)
當然很多很多人都說過在寫**時盡量另用goto語句,不得萬不得已少用了.
static在C 中的一些用法
static是與auto相對的乙個關鍵字,我們平時沒有用static修飾的變數,都是預設為auto的。所以要理解static,就先看看auto。auto automatic 的含義是由程式自動控制變數的生存週期,通常指的就是變數在進入其作用域的時候被分配記憶體,離開其作用域的時候被釋放 而stati...
自己在C 中的一些錯誤
cin 學生的成績為 stu.score 分析 在c 中cin是作為輸入流進行使用,他是將敲在鍵盤上的值賦值cin後面的變數,而學生的成績為常量,不能被賦值.淺拷貝問題主要是由於在c 的類中為指標資料成員申請了一塊動態空間,這時候如果直接呼叫預設的拷貝建構函式初始化乙個物件,會發生兩個物件的指標指向...
C 與C的一些知識
cout 其中的cou 是outstream 類的乙個物件 而 是這個類的運算子過載,嗯,我們已經基本上看出了cout的實質,不妨動動手,自己來實現乙個cout的簡化版 lite 為了區分,我們把我們設計的cout物件命名的myout,myout物件所屬的類為myoutstream。我們要做的就是為...