C# 函数
1.函数写在class与主函数之间,在主函数中调用
2.在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。
3.void是没有返回值,括号内是参数(有参数时),private只能在当前类里面使用,public是公共的,可以在整个命名空间使用。 有何无相对于主函数来说的;return+需要返回的值;
4.Public void leijia(int a){}
5.公共函数 没有返回值(返回值的类型int/double) 函数名称 参数的类型及名称。
6.调用函数时必须初始化;
函数格式
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace 函数 6 { 7 class Program 8 { 9 public void First() 10 { 11 Console.WriteLine("这是我第一个函数里面的第一句话。"); 12 } 13 14 //格式1:没有参数,没有返回值 (无参无返) 15 /// <summary> 16 /// 累加求和的方法,没有参数,没有返回值 17 /// </summary> 18 public void LeiJia() 19 { 20 //累加求和 21 Console.Write("请输入一个正整数:"); 22 int a = int.Parse(Console.ReadLine()); 23 int sum = 0; 24 for (int i = 1; i <= a; i++) 25 { 26 sum += i; 27 } 28 Console.WriteLine("总和是" + sum); 29 } 30 31 //格式2:没有返回值,有参数(有参无返) 32 /// <summary> 33 /// 累加求和,需要一个int类型的参数,没返回值 34 /// </summary> 35 /// <param name="d"></param> 36 public void LeiJia(int d) 37 { 38 int sum = 0; 39 for (int i = 1; i <= d; i++) 40 { 41 sum += i; 42 } 43 Console.WriteLine("总和是" + sum); 44 } 45 46 47 //格式3:有参数,有返回值(有参有返) 48 /// <summary> 49 /// 累加求和,需要参数,也有返回值 50 /// </summary> 51 /// <param name="d"></param> 52 /// <returns></returns> 53 public int Leijia1(int d) 54 { 55 int sum = 0; 56 for (int i = 1; i <= d; i++) 57 { 58 sum += i; 59 } 60 return sum; 61 } 62 63 //格式4:没有参数,有返回值 64 /// <summary> 65 /// 累加求和,没有参数,但是有返回值(int) 66 /// </summary> 67 /// <returns></returns> 68 public int Leijia2() 69 { 70 Console.Write("请输入一个正整数:"); 71 int a = int.Parse(Console.ReadLine()); 72 int sum = 0; 73 for (int i = 1; i <= a;i++ ) 74 { 75 sum += i; 76 } 77 return sum; 78 } 79 80 //比较大小 81 /// <summary> 82 /// 格式3,有参有返 83 /// 两个数比较大小返回较大的一个 84 /// </summary> 85 /// <param name="a"></param> 86 /// <param name="b"></param> 87 /// <returns></returns> 88 public double Max(double a , double b) 89 { 90 if (a >= b) 91 { 92 return a; 93 } 94 else 95 { 96 return b; 97 } 98 } 99 100 101 static void Main(string[] args) 102 { 103 104 //实例化 初始化 这个类 105 Program hanshu = new Program(); 106 //hanshu.First(); 107 //格式1调用 108 //hanshu.LeiJia(); 109 110 //格式2调用 111 //Console.Write("请输入一个正整数:"); 112 //int a = int.Parse(Console.ReadLine());---------等号左侧接收 113 //hanshu.LeiJia(a); 114 115 //格式3调用 116 //Console.Write("请输入一个正整数:"); 117 //int a = int.Parse(Console.ReadLine()); 118 //int sum = hanshu.Leijia1(a); ---------------等号左侧 119 //Console.WriteLine(sum); 120 121 //格式4调用 122 //int sum =hanshu.Leijia2(); ----------------等号左侧 123 //Console.WriteLine(sum); 124 125 126 //比较大小 127 double a = 6; 128 double b = 7; 129 double c =4; 130 Console.WriteLine(hanshu.Max(hanshu.Max(a,b),c)); 131 132 //Random ran = new Random(); 133 //int aa = ran.Next();
例题: 数组写成函数:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _10._18 8 { 9 class Program 10 { 11 private int[] congxiaodaodapaixu(int[] strs) 12 { 13 for (int i = 0; i < strs.Length - 1; i++) 14 { 15 for (int j = i + 1; j < strs.Length; j++) 16 { 17 if (strs[i] > strs[j]) 18 { 19 int bian = strs[j]; 20 strs[j] = strs[i]; 21 strs[i] = bian; 22 } 23 } 24 } 25 return strs; 26 } 27 private int[] congdadaoxiaopaixu(int[] strs) 28 { 29 for (int i = 0; i < strs.Length - 1; i++) 30 { 31 for (int j = i + 1; j < strs.Length; j++) 32 { 33 if (strs[i] < strs[j]) 34 { 35 int bian = strs[j]; 36 strs[j] = strs[i]; 37 strs[i] = bian; 38 } 39 } 40 } 41 return strs; 42 } 43 static void Main(string[] args) 44 { 45 Program pr = new Program(); 46 //输入每个人的年龄 排序 47 Console.Write("请输入总人数:"); 48 int ci = int.Parse(Console.ReadLine()); 49 int[] strs = new int[ci]; 50 51 for (int i = 0; i < strs.Length; i++) 52 { 53 Console.Write("请输入第{0}个学生的年龄:", i + 1); 54 strs[i] = int.Parse(Console.ReadLine()); 55 } 56 57 Console.WriteLine("从小到大"); 58 strs = pr.congxiaodaodapaixu(strs); 59 for (int i = 0; i < strs.Length; i++) 60 { 61 Console.Write(strs[i]); 62 Console.WriteLine(); 63 } 64 Console.WriteLine(); 65 Console.WriteLine(); 66 Console.WriteLine(); 67 Console.WriteLine(); 68 Console.WriteLine("从大到小"); 69 strs = pr.congdadaoxiaopaixu(strs); 70 for (int i = 0; i < strs.Length; i++) 71 { 72 Console.Write(strs[i]); 73 Console.WriteLine(); 74 } 75 Console.ReadLine(); 76 } 77 } 78 79 }
例题:超市购物
//去超市选择要购买的商品 //0.开始购买 //1.洗发水 15元 //2.牙刷 5元 //3.可口可乐 3元 //4.水杯 12元 //5.毛巾 6元 //6.结算
//输入想要的物品编号,输入每种商品需要买几件
//结算:需要列出来商品名称、单价、数量、 //总价以及所有物品总价,结账时间 //然后输入交给收银员的钱数 //不够,请继续交钱 //够,结算,找钱
////难点: if 嵌套 switch ////ConsoleWrite()语句在循环内部 ////多个一维数组共用一组索引号 Console.WriteLine("0.开始购买"); Console.WriteLine("1.洗 发 水 15元"); Console.WriteLine("2.牙 刷 5元"); Console.WriteLine("3.可口可乐 3元"); Console.WriteLine("4.水 杯 12元"); Console.WriteLine("5.毛 巾 6元"); Console.WriteLine("6.结算"); Console.Write("请按0键,开始购物:"); double q = double.Parse(Console.ReadLine()); int[] c = new int[5] { 0, 0, 0, 0, 0 }; //定义一个 0的 一维数组 初始值的考虑。 if (q == 0) { for (; ; ) { Console.Write("输入商品编号a:"); int a = int.Parse(Console.ReadLine()); // 函数语句的位置可以随便放 只要符合规范 if (a > 0 && a <= 6) { switch (a) { case 1: Console.Write("要购买的商品是:洗 发 水 单价 15元"); Console.Write("洗 发 水,数量:"); int c1 = int.Parse(Console.ReadLine()); c[0] = c1; //把前面相同位置的数 修改掉; break; case 2: Console.Write("要购买的商品是:牙 刷 单价 5元"); Console.Write("牙 刷,数量:"); int c2 = int.Parse(Console.ReadLine()); c[1] = c2; break; case 3: Console.Write("要购买的商品是:可口可乐 单价 3元"); Console.Write("可口可乐,数量:"); int c3 = int.Parse(Console.ReadLine()); c[2] = c3; break; case 4: Console.Write("要购买的商品是:水 杯 单价 12元"); Console.Write("水 杯,数量:"); int c4 = int.Parse(Console.ReadLine()); c[3] = c4; break; case 5: Console.Write("要购买的商品是:毛 巾 单价 6元"); Console.Write("毛 巾,数量:"); int c5 = int.Parse(Console.ReadLine()); c[4] = c5; break; } if (a == 6) { break; } } else { Console.WriteLine("输入错误!"); } } Console.Write("点击回车键结账"); Console.ReadLine(); double m = c[0] * 15 + c[1] * 5 + c[2] * 3 + c[3] * 12 + c[4] * 6; Console.WriteLine("应付金额:" + m); Console.WriteLine("交付金额:"); double y = double.Parse(Console.ReadLine()); Console.WriteLine("找零:"); double t = y - m; if (t >= 0) { double[] d = new double[5] { 15, 5, 3, 12, 6 };//单价 一维数组 string[] e = new string[5] { "洗 发 水", "牙 刷", "可口可乐", "水 杯", "毛 巾" };//货物种类 一维数组 double sum = 0; for (int i = 0; i < 5; i++) { if (c[i] != 0) { sum += c[i] * d[i]; Console.WriteLine("购买{0},数量:{1};单价{2} 元", e[i], c[i], d[i]); } } Console.WriteLine("您此次的购物金额是{0},支付金额{1};找零{2}元", sum, y, t); DateTime dt = DateTime.Now; Console.WriteLine(dt); } else { Console.WriteLine("金额不足,缺少金额:{0}元。" + Math.Abs(t)); } } else { Console.Write("输入错误:"); }