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