2023-05-18
自我提升
0

函数(Function ⽅法Method)

⽅法Method 名称首字母大写

c#
//方法的定义 : //VerifyUsername //bool 需返回布尔类型值 //形参 形式参数 static bool VerifyUsername(string username)//参数 { Console.WriteLine("校验逻辑修改"); Console.WriteLine("校验逻辑修改2"); Console.WriteLine("校验用户名"+username); return true; } //主函数-入口函数 -- 主方法 入口方法 static void Main(string[] args) { //100-50 //方法的调用: //某个字符串 实参,实际参数 bool result = VerifyUsername("siki"); Console.WriteLine(result); }
  • 1、如果需要重复执⾏某段代码,那就需要写重复的代码
  • 2、重复的代码多了,不容易管理,不容易阅读和维护

⽐如某段代码的功能是校验⽤户输⼊的⽤户名是否符合要求。

c#
static bool VerifyUsername(string username)//参数 { Console.WriteLine("校验逻辑修改"); Console.WriteLine("校验逻辑修改2"); Console.WriteLine("校验用户名"+username); return true; } //主函数-入口函数 -- 主方法 入口方法 static void Main(string[] args) { bool result = VerifyUsername("siki"); Console.WriteLine(result); ////Console.WriteLine("校验逻辑修改"); ////Console.WriteLine("校验用户名"); VerifyUsername("sikiedu"); ////Console.WriteLine("校验逻辑修改"); ////Console.WriteLine("校验用户名"); VerifyUsername("micheal"); }

如果程序中有多个地⽅需要做校验,就会有重复代码。

c#
// a + b static void Add1() { int result = 3 + 4; } static void Add2(int a,int b) { int result = a + b; } //static 静态-修饰符 static int Add3(int a,int b) { int result = a + b; return result;//break; 方法返回了之后,表示这个方法结束了,后续代码就不执行了 Console.WriteLine("123"); } //主函数-入口函数 -- 主方法 入口方法 static void Main(string[] args) { //方法的调用 Add1(); Add2(10, 12); int res = Add3(23, 23); Console.WriteLine(res); }

❓练习1 - 引⼊知识点

区间内的真素数
找出正整数 M 和 N 之间(N 不⼩于 M)的所有真素数。真素数的定义:如果⼀个正整数P 为素数,且其反序也为素数,那么 P 就为真素数。例如,11,13 均为真素数,因为11的反序还是为11,13 的反序为 31 也为素数。

输⼊格式:输⼊两个数 M 和 N,空格间隔,1 <= M <= N <= 100000。输出格式:按从⼩到⼤输出 M 和 N 之间(包括 M 和 N )的真素数,逗号间隔。如果之间没有真素数,则输出 No。

输⼊样例:10 35
输出样例:11,13,17,31

c#
// m<=n string str = Console.ReadLine(); string[] strArray = str.Split(" "); int[] intArray = new int[strArray.Length]; for (int j = 0; j < strArray.Length; j++) { int number = Convert.ToInt32(strArray[j]); intArray[j] = number; } //得到用户输入的一组数字 int m = intArray[0]; int n = intArray[1]; for(int i = m; i < n + 1; i++) { //判断i是否是素数 bool isSu = true; for(int j = 2; j < i; j++) //2~i-1 { if (i % j == 0) //被整除 { isSu = false; break; } } if (isSu) //是素数 { //取得反序 i // 624 int temp = i; int number = 0; while ( temp%10!=0 ) // 426 (6*10+2)*10+4 { number = number * 10 + temp % 10; temp = temp / 10; } bool isSuFan = true; for(int j = 2; j < number; j++) { if (number % j == 0) //被整除 { isSuFan = false; break; } } if (isSuFan == true) { Console.Write(i + " "); } } }

改良后

c#
// 定义方法 static bool IsSu(int number) { bool isSu = true; for (int j = 2; j < number-1; j++) //2~i-1 { if (number % j == 0) { isSu = false; return isSu; } } return isSu; } // 调用 static void Main(string[] args) //主函数入口 { // m<=n string str = Console.ReadLine(); string[] strArray = str.Split(" "); int[] intArray = new int[strArray.Length]; for (int j = 0; j < strArray.Length; j++) { int number = Convert.ToInt32(strArray[j]); intArray[j] = number; } //得到用户输入的一组数字 int m = intArray[0]; int n = intArray[1]; for(int i = m; i < n + 1; i++) { //判断i是否是素数 //取得反序 //判断是否是素数 bool isSu = IsSu(i); //调用函数 if (isSu) //是素数 { //取得反序 i // 426 (6*10+2)*10+4 // 624 int temp = i; int number = 0; while ( temp%10!=0 ) { number = number * 10 + temp % 10; temp = temp / 10; } bool isSuFan = IsSu(number); //调用函数 if (isSuFan == true) { Console.Write(i + " "); } } } }
c#
函数的定义和使⽤ static void Verify() //static 静态的 void 返回值(可以不需要) Verify()方法名(参数) { //程序段 } Verify(); //调用 函数的参数(形参和实参) static void Add(int a,int b){ } Add(23,1); //(实际参数) 函数的返回值 static int Add(int a,int b){ return a+b; }

相关信息

return⽤来结束当前函数,并把某个结果返回

如果是void的可以直接return;

❓练习2
定义⼀个函数,⽤来取得⼀个数字的所有因⼦,把所有因⼦返回。

c#
//定义函数 static int[] GetIn(int number) { int count = 0; for (int i = 1; i < number + 1; i++) { if (number % i == 0) //计算有多少个因子 { count++; } } int[] array = new int[count]; int index = 0; //位置索引 for(int i = 1; i < number + 1; i++) { if (number % i == 0) //创建数组 { array[index] = i; index++; } } return array; //返回数组 } //主函数入口 static void Main(string[] args) { int number = Convert.ToInt32(Console.ReadLine()); int[] array = GetIn(number); //调用函数 foreach(int temp in array) { Console.Write(temp + " "); } }

❓练习3
定义⼀个函数,⽤来取得⼀个数组中的最⼤值。

c#
//定义函数 static int Max(int[] array) { int max = array[0]; for(int i = 1; i < array.Length; i++) { if (array[i] > max) { max = array[i]; } } return max; } //主函数入口 static void Main(string[] args) { string str = Console.ReadLine(); string[] strArray = str.Split(" "); int[] intArray = new int[strArray.Length]; for (int j = 0; j < strArray.Length; j++) { int number = Convert.ToInt32(strArray[j]); intArray[j] = number; } int n = Max(intArray); //调用 Console.WriteLine(n); }

1、函数的⼏个要素

  • 返回值、参数、函数名。

2、函数的修饰(static)

  • 其他的东⻄都是修饰