C#(三)基礎篇—方法,遞歸,條件分支,循環,三元操作符
- 2020 年 12 月 3 日
- 筆記
C#
本隨筆為個人複習鞏固知識用,多從書上總結與理解得來,如有錯誤麻煩指正
2020-12-03
1.方法
static void Main(string[] args) { float Sum(float a, float b) //定義一個方法,返回值浮點型,標識符ADD { return a + b; } float number1 = 5; float number2 = 10; float number3 = Sum(number1, number2);//先執行sum方法再將返回值賦值給number3 Console.WriteLine(number3); //輸出值 }
如果方法的參數是內置參數,則在方法內部引用的是參數的副本,方法內的運算不會影響到參數本身。如果希望在方法內改變內置類型參數值,需要添加ref或out標識符
我所學習的書中示例也是出現了另一個錯誤,Change中和下方定義的變數不能重複,將Change中a變為b即可解決
static void Main(string[] args) { void Change(ref int b) { b += 10; } int a = 0; Change(ref a); Console.Write(a); }
也可將ref替換為out,區別是需要在方法中初始化變數再使用它
static void Main(string[] args) { void Change(out int a) { a = 0; a += 10; } int b = 0; Change(out b); Console.Write(b); }
2.遞歸
在方法中調用當前方法叫遞歸
static void Main(string[] args) { void Print( int n) { if (n == 0) { Console.WriteLine(n); return; } else { Console.WriteLine(n); Print(n - 1); } } int a = 10; Print(a); }
要注意遞歸一定要有退出條件,輸出的前後順序也會影響輸出結果,遞歸與普通循環相比效率更低,不適合項目,適合試題
3.條件分支語句
常使用到if,else,switch等關鍵詞
在上面遞歸中就用到了if,即if後的判斷為true時執行if{}里的語句,具體可以參考上面
switch語句作用與if類似,可讀性更佳
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { enum FRUIT { Apple=0, Banana, Cherry, } static FRUIT fruit = FRUIT.Apple; static void Main(string[] args) { switch(fruit) { case FRUIT.Apple: //如果fruit的值等於FRUIT.Apple Console.WriteLine("Apple"); break;// 使用break退出 case FRUIT.Banana: Console.WriteLine("Banana"); break; case FRUIT.Cherry: Console.WriteLine("Cherry"); break; } //上述語句等價於 if (fruit == FRUIT.Apple) { Console.Write("Apple"); } else if (fruit == FRUIT.Banana) { Console.Write("Banana"); } else if (fruit == FRUIT.Cherry) { Console.Write("Cherry"); } Console.ReadKey();//按任意鍵退出 } } }
4.循環語句
while語句是一個條件循環語句,每次循環返回一個邏輯表達式值,只有表達式值為false時才會退出循環,使用時要注意不要陷入死循環
int n=0; while(n<10) //如果n<10,則會一直循環{}中語句 { n++; //如果n為10時退出循環 }
for語句與while類似,都是條件循環語句,不同的是,for語句可以更方便的控制循環次數
for(int i=0;i<10;i++) //i初始值為0,i小於10會循環,每次循環加一 { //循環10次 }
很多時候,需要在循環中直接退出或者不再執行剩下語句繼續下一個循環,可以使用break和continue
int n=10; while(true) { if(n==5)//當n=5時,直接退出循環 {break;} n--; } for(int i=0;i<10;i++) { if(i==5) {continue;} //當i=5,將跳過其他程式碼直接下一個循環 //其他程式碼 }
5.三元操作符
作用與if類似,條件表達式為true執行表達式1,否則執行表達式2
//條件表達式?表達式1:表達式2 int a=50,b=100; int max = a>b?a:b
max值為100