函数(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);
}
⽐如某段代码的功能是校验⽤户输⼊的⽤户名是否符合要求。
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)