using System;
namespace -----------------------------二维数组-----------------------------
{
class Program
{
static void Main(string[] args)
{
#region 二维数组
//一 定义二维数组
int[,] arr2 = new int[3, 4];//默认值都为0
int[,] arr2_1 = new int[2, 3]
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};
int[,,] arr2_3 =
{
{
{ 1, 2, 3 },
{ 4, 5, 6 }
},
{
{ 1, 2, 3 },
{ 4, 5, 6 }
}
};
//二 给数组中每一元素赋值
arr2[0, 0] = 1;
//三 给数组中所有元素赋值(修改值)
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
arr2[i, j] = (i+1)*(j+1);
}
}
//四 输出数组中的所有元素(取值)
Console.WriteLine("输出二维数组中的值为:");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
Console.Write(arr2[i, j]+"\t");
}
Console.WriteLine();
}
//Length数组属性表示数组中的所有元素个数
//输出三维数组中的所有信息
//访问多种元素中所有元素,有几维就循环几次
Console.WriteLine("输出三维数组中的值为:");
for (int i = 0; i <arr2_3.GetLength(0) ; i++)
{
for (int j = 0; j < arr2_3.GetLength(0); j++)
{
for (int k = 0; k < arr2_3.GetLength(0); k++)
{
Console.Write(arr2_3[i, j, k] + "\t");
}
Console.WriteLine();
}
Console.WriteLine();
}
Console.WriteLine("------------------------------------------------------------");
//五 定义锯齿型数组
int[][] arrX = new int[3][];
arrX[0] = new int[4];
arrX[1] = new int[5];
arrX[2] = new int[6];
//给锯齿形数组中元素赋值
for (int i = 0; i < arrX.Length; i++)
{
for (int j = 0; j < arrX[i].Length; j++)
{
arrX[i][ j] = (i + 1) * (j + 1);
}
Console.WriteLine();
}
//访问锯齿形数组中的内容
for (int i = 0; i < arrX.Length; i++)
{
for (int j = 0; j <arrX[i].Length; j++)
{
Console.Write(arrX[i][j] + "\t");
}
Console.WriteLine();
}
Console.WriteLine("九九乘法表------------------------------------------------------------");
//课堂作业 九九乘法表
int[][] arrC = new int[9][];
arrC[0] = new int[1];
arrC[1] = new int[2];
arrC[2] = new int[3];
arrC[3] = new int[4];
arrC[4] = new int[5];
arrC[5] = new int[6];
arrC[6] = new int[7];
arrC[7] = new int[8];
arrC[8] = new int[9];
int a = 0;
for (int i = 0; i < arrC.Length; i++)
{
for (int j = 0; j < arrC[i].Length; j++)
{
arrC[i][j] = (i + 1) * (j + 1);
}
Console.WriteLine();
}
for (int i = 0; i < arrC.Length; i++)
{
for (int j = 0; j < arrC[i].Length; j++)
{
Console.Write(arrC[i][j] + "\t");
a += arrC[i][j];
}
Console.Write("和为" + a);
Console.WriteLine();
a = 0;
}
#endregion
Console.ReadKey();
}
}
}
try//-------------异常处理----------------
{
// 引起异常的语句
}
catch( ExceptionName e1 )
{
// 错误处理代码
}
catch( ExceptionName e2 )
{
// 错误处理代码
}
catch( ExceptionName eN )
{
// 错误处理代码
}
finally
{
// 要执行的语句
}
using System;
/*-----------------------------函数------------------------------
一 类的组成
1.数据成员
2.函数成员
二 函数的组成,定义函数的的时候包含以下部分
1.返回值
(1)无返回值,关键字void
(2)可以返回任何数据类型(简单数据类型,复杂数据类型)。根据数据类型不同来定
2.函数名字
遵循标识符的命名规则
1.由数字,字母,下划线构成
2.不能和关键字一样
3.不能数字开头
4.见其名知其意
5.如果有多个单词,可以使用驼峰命名法,如getNum,GetNum
3.形参列表
1.函数名后面
2.小括号中
3.和变量名一样,可以有多个,多个之间用逗号隔开
4可以没有形参列表
4.函数体
1.一对大括号,包含其中内容
2.如果返回值不为void,函数体内部一定要有return结果;语句
3.如果返回值为void,函数体内部不一定要有return语句,如果有return语句,
没有结果返回,表示后面的代码不再执行
三 调用函数
函数名(实参)
四 函数重载
在一个类中,定义的函数名字一样,参数不一样(参数类型不一样,或者个数不一样)
五 为什么要用函数
封装一个功能
重复使用改方法
六 函数形参理解
1.值类型参数(拷贝型参数)
没有ref或者out都是拷贝型参数
2.引用类型参数
ref:传进来的实参需要赋值
out:传进来的实参不需要赋值,在函数内部进行赋值
定义函数和调用函数的时候都要写关键字
3.可选参数(默认值的参数)
放在必选参数后面
4.不定性参数
params 这种类型的参数要放在参数列表最后
1:什么是 ref 参数 ? , 2:什么是 out 参数?
1、使用 ref 参数时,传入的参数必须先被初始化。对 out 参数而言,必须在方法中对其完成初始化。
2、使用 ref 和 out 时,在方法的参数和执行方法时,都要加 ref 或 out 关键字,以满足匹配。
3、out 适合用在需要 return 多个返回值的地方,而 ref 则用在需要被调用的方法,修改调用者的引用的时候。
什么时候选择用 ref ? 什么时候选择用 out ?
1、ref 的使用:使用 ref 进行参数的传递时,该参数在创建时,必须设置其初始值,所以ref 侧重于修改;
2、out 的使用:采用 out 参数传递时,该参数在创建时,可以不设置初始值,但是在方法中必须初始化,所以 out 侧重于输出;
当希望方法返回多个值时,可以用 out,并且一个方法中的参数可以有一个或多个 out 参数;
使用 out 参数,必须将参数作为 out 参数显式传递到方法中,但是out 参数的值不会被传递到方法中,且属性不是变量,不能作为 out 参数传递。
*/
namespace 函数
{
class Program
{
static void getBigNum(int num,out string bigChar)
{
if (num == 0)
{
bigChar = "零";
}
else if (num == 1)
{
bigChar = "壹";
}
else
{
bigChar = "其他";
}
}
/// <summary>
/书写一个函数,用来实现两个变量的互换
/// </summary>传引用 // 数组穿的就直接是引用
/// <param name="a"></param>
/// <param name="b"></param>
static void Exchange(ref int a,ref int b)
{
int c = a;
a = b;
b = c;
}
/// <summary>
/// 排序函数,默认从小到大排序,
/// </summary>
/// <param name="arr1"></param>
static void sort(int[] arr1,bool isBig=false)
{
for (int i = 0; i < arr1.Length - 1; i++)
{
for (int j = i + 1; j < arr1.Length; j++)
{
if(isBig==false)//从小到大排序
{
if (arr1[i] > arr1[j])
{
//实现两个数的交互(写一个函数)
int tmp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = tmp;
}
}
else//从大到小
{
if (arr1[i] < arr1[j])
{
//实现两个数的交互(写一个函数)
int tmp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = tmp;
}
}
}
}
}
/// <summary>
/// 求一个整形数组所有元素之和,用函数实现
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
static int Arr(int[] num)
{
int a=0;
for (int i = 0; i<num.Length; i++)
{
a += num[i] ;
}
return a;
}
/// <summary>
/// //输入两个数,获取其中最大值,使用函数实现
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
static int Bigest(int a, int b)
{
int max;
if (a>b)
{
return a;
}
else
{
return b;
}
}
static void Main(string[] args)
{
//输入两个数,获取其中最大值,使用函数实现
int a = 7;int b = 8;
int c= Bigest(a,b);
Console.WriteLine(c);
//求一个整形数组所有元素之和,用函数实现
int[] num = new int[5] { 2,6,8,7,5};
Arr(num);
Console.WriteLine(Arr(num));
//书写一个函数,用来实现两个变量的互换
Console.WriteLine("a" + a + "b" + b);
Exchange(ref a,ref b);
Console.WriteLine("a"+a+"b"+b);
//转化大写汉字
string bigChar = "";
getBigNum(1,out bigChar);
Console.WriteLine(bigChar);
}
}
}