c#第五天

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);


        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值