案例1:税后工资
static void Main(string[] args)
{
float c = 0.1f;//税率
Console.Write("请输入税收前工资:");
float pay=float.Parse(Console.ReadLine());
float b = Getpay(pay,c);//税后工资
Console.WriteLine("请输入税后工资:{0}", b);
Console.ReadKey();
}
/// <summary>
/// 计算工资
/// </summary>
/// <param name="pay"></param>税收前工资
/// <param name="c"></param>税率
/// <returns></returns>
static float Getpay(float pay,float c)
{
//税后工资
float b = 0;
if (pay <= 1600)
{
b = pay;
}
else
{
b = (pay - 1600) * (1 - c) + 1600;
}
return b;
}
————————————————————————————————————————————————————————
案例2:ref的运用
static void Main(string[] args)
{
/*对int类型进行传参是传值的方式
*传值会将实参的值复制一份给形参,那么对行参的修改无法影响实参的变化
*我们可以使用ref关键字(传引用),这样的实参和形参实际上使用的是同一个变量
*那么对形参的修改会影响到实参,所以下列能够做到互相的效果*/
int num1 = 10;
int num2 = 5;
Console.WriteLine("交换前两个数是{0},{1}",num1,num2);
// Swap(num1,num2);//值传递不会改变
Swap(ref num1, ref num2);
Console.WriteLine("交换后两个数是{0},{1}",num1,num2);
Console.ReadKey();
}
static void Swap(ref int num1,ref int num2)//加上ref 值才能引用
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
——————————————————————————————————————————————————————
案例3 out关键字的运用
static void Main(string[] args)
{
/*如果希望一个方法有多个返回值,那么我们可以使用out关键字
* out关键字实际上是传引用的方式,你对out定义的关键字的
* 形参做了更改,是会影响到实参的,所以以下的传递out的变量i
* 能够得到对形参更改后的值,其实out和ref关键字效果是一样的
* 都是传引用,但是out关键字通常用于多个返回值。而ref关键字通常是
* 实参传递给形参能够影响到实参的变化的情况下使用
* 注意使用ref关键字传递的实参,须赋值所传递的变量
* 使用out不需要赋值(因为常用于多个返回)
* eee*/
int i;
int t = TestMethod(out i);
Console.WriteLine(t);
Console.WriteLine(i);
Console.ReadKey();
}
static int TestMethod(out int num)
{
num = 10;
return 20;
}
——————————————————————————————————————————————————————
案例4 圆的半径
static void Main(string[] args)
{
Console.Write("请输入圆的半径:");
double radius = double.Parse(Console.ReadLine());
double c;
double s=caclCircle(radius,out c);
Console.WriteLine("周长:{0}", c);
Console.WriteLine("面积:{0}", s);
Console.ReadKey();
}
/// <summary>
/// 计算圆的面积和周长
/// </summary>
/// <returns></returns>
static double caclCircle(double r,out double c)
{
//求圆的面积和周长,因为该函数需要返回两个值所以使用out关键字
c = 2 * Math.PI * r;//周长
double s = Math.PI * r * r;//面积
return s;
}
————————————————————————————————————————————————————————
案例5 方法调用
static void Main(string[] args)
{
//方法调用,最简单的方法
p();
Console.ReadKey();
}
static void p()
{
int pay;
float a = 0.1f;//C# 默认是double,加个f编译器就知道是float的类型。
float b;
Console.Write("请输入工资:");
pay = int.Parse(Console.ReadLine());
if (pay < 1600)
b = pay;
else
b = (pay - 1600) * (1-a) + 1600;
Console.WriteLine("交税收后的工资:{0}",b);
}
————————————————————————————————————————————————————————
案例6 阶乘
static void Main(string[] args)
{
Console.Write("请输入要阶乘的数:");
double a = double.Parse(Console.ReadLine());
double r = jc(a);
Console.Write(r);
Console.ReadKey();
}
static double jc(double n)
{
double result=1;
for (int i = 1; i <= n; i++) //result=1,result *=n,n--
{
result = result * i;
}
return result;
//if (n == 1)
//{
// return 1;
//}
//else
//{
// return n * jc(n - 1);
//}
}
——————————————————————————————————————————————————————
案例 7 调用前后值的变化
static void Main(string[] args)
{
Console.WriteLine("请数入两个数:");
double num1 = double.Parse(Console.ReadLine());
double num2=double.Parse(Console.ReadLine());
Console.WriteLine("方法调用前两个数的值是:{0},{1}", num1, num2);
cd( num1,ref num2);
Console.WriteLine("方法调用后两个数的值是:{0},{1}",num1,num2);
Console.ReadKey();
}
static void cd( double num1,ref double num2)
{
Console.WriteLine("刚进入两个数的值是:{0},{1}", num1, num2);
num1 = num1 + 1;
num2 = num2 + 1;
Console.WriteLine("离开前两个数的值是:{0},{1}", num1, num2);
}
——————————————————————————————————————————————————————
案例8 最大值和索引
static void Main(string[] args)
{
int[] aaa ={ 3, 2, 4, 9, 8 };
int sy;//
int zd=ddd(aaa,out sy);//
Console.Write("最大{0}索引{1}",zd,sy);
Console.ReadKey();
}
static int ddd(int[] aaa,out int sy)
{
int max = 0;
for (int i = 1; i < aaa.Length-1; i++)
{
if (aaa[i]> aaa[max])
{
max = i;
}
}
sy = max + 1;
return aaa[max];
}
————————————————————————————————————————————————————-
案例9 递归!
static void Main(string[] args)
{
Console.WriteLine("输出1,1,2,3,5,8......递归");
int n = int.Parse(Console.ReadLine());
int m = aaa(n);
Console.WriteLine(m);
Console.ReadKey();
}
public static int aaa(int i)
{
if (i == 0)
return 0;
else if (i == 1)
return 1;
else
return aaa(i - 1) + aaa(i - 2);
}