如鹏网.Net基础1 第三章:C#语言基础2

本章主干知识点:

1、for循环;案例:1累加到n、日月选择界面;

2、while循环和do……while循环;

3、break和continue的区别;

4、如何声明一维数组;如何给一维数组赋值;如何遍历一维数组;

5、数组案例:手机号算命;

6、方法的声明:方法名、参数、返回值;

7、方法的重载:两个方法名字相同,参数不同才能构成重载,和返回值无关;

8、可变长度参数params,params必须是最后一个参数,而且是数组类型;

------------------------------------------------

第 1 节 For循环入门

  循环结构有:for,while,do...while三种

  1、for结构

  for(初始化表达式;循环条件表达式;循环后的操作表达式)

  {

     //循环体语句

  }

  最开始先执行“初始化表达式”(只执行1次),然后循环执行:先判断“循环条件表达式”,如果为true,则执行“循环体语句”,然后执行循环后的操作表达式;

  练习:

      打印 100-200

      打印10-1

      打印 10-30之间所有偶数 

-----------------------------------------------

第 2 节 For循环练习讲解

------------------------------------------------
第 3 节 For循环案例:1加到n(震撼的算法)

  for循环容易出错的点:

    1.初始化是0还是1

    2.条件是小于还是小于等于

  时间复杂度:o(n):y=x  (数越大,步数越多)

        o(1)    (就1次)

  空间复杂度:?

  经验1:高效的实现用户的要求,很重要。

  经验2:很多算法可以把一段程序简化到不可思议的程度(数学知识等)

------------------------------------------------
第 4 节 For循环案例:月日选择

------------------------------------------------
第 5 节 while循环

  while(条件表达式){

    //循环体(条件表达式为true)

  }

  "死循环"

  1.while(true)

  {

  }

  2.for(;;)

  {

  }

  // i++    i 在前,先取i

  //++i     i在后,先+后取i

------------------------------------------------
第 6 节 dowhile和break、continue

  1.do while循环

    1、do

    {

       执行语句

    }

    while(条件表达式);

    2、先执行一次“执行语句”再判断“条件表达式”决定是否进入下次循环。

    

    3、do...while和while的主要区别:do...while的执行语句至少执行一次,while的执行语句可能一次都不执行。do...while用的更少,到具体应用时再说。

  2.break continue

     实现满足某个条件时终止循环

    break和continue可用到for,while,do while循环中。

    break:终止整个循环(不再循环了)

    continue:终止当次循环(跳过一下,继续后续循环)

  注意:在for循环嵌套时,break(continue相同)只终止离他最近的循环(往外层看)

------------------------------------------------
第 7 节 数组的声明和使用

  1.定义

    类型[] 数组名 =new 类型[个数];//定义时必须确定个数

    int[] arr=new int[5];(默认构造函数,初始化:默认5个为0)

    数组的序号从0开始;

    int[] arr1={1,2,3,4,5};(确定个数和内容)

------------------------------------------------
第 8 节 数组的遍历及案例

    for循环(0,1,2,3.。。。。length-1)

    arr.Length 数组的长度

    int,double,float等数组,没有赋值的元素初始化为0

    string等引用类型初始化为null

    IndexOutOfRangeException 越界异常(不能取>=Length)

    动态数据List等集合。

------------------------------------------------
第 9 节 手机号算命程序1

  1.不要多个if嵌套,使用 return;    //退出当前方法

  2.char.IsDigit  判断全是十进制数字

------------------------------------------------
第 10 节 手机号算命程序2

  运算符优先级问题()神器

------------------------------------------------
第 11 节 手机号算命程序3

  注意:小数在计算机中二进制近似存储的问题

  小数一般都是近似存储的。

  0.1 和 0.099999999324的区别

  命理数 就是 求余

  查表法:一个数组

------------------------------------------------
第 12 节 方法入门

  方法又叫函数

  方法就是一堆可以重复使用的代码

  方法是声明在类中的

  格式:

  返回值类型 方法名 (参数类型 参数1,参数类型 参数2.....){

    //方法体

  }

  目前来讲所有方法都先加上static,以后讲why

------------------------------------------------
第 13 节 方法的细节问题说明

  1.方法就是一堆可以重复使用(复用)的代码段。方法执行过程中无法确定的数据以参数形式传递过来;方法的执行结果以返回值进行返回。

  2.方法可以没有参数;方法可以没有返回值(void)

  3.方法中用return返回处理结果,执行return之后方法内部的代码就执行结束了

  4.如果(void)没有返回值,则在需要执行结束的地方return;,如果没写return,则在最后一句相当于return;

  5.不能在方法中定义方法。

  6.方法中的局部变量不能被调用的方法访问,如果真要访问只能通过参数传值,并且只是相当于变量赋值,方法内部对参数赋值不会影响调用者。

  (参数的名字是方法内部用来获得用户传入数据的。我也不知道用户调用我的时候传递的变量名是什么)

  (调用方法的时候也不用管方法参数的名称是什么,调用者无法获得方法内部任何数据,return out  ref除外。)

  7.方法的所有路径必须都要有返回值。 

------------------------------------------------
第 14 节 数组案例讲解和练习说明

   1.不是所有的路径都有返回值。

         /// <summary>
        /// 判断一个字符串是否全由数字组成
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static bool AllIsDigit(string  str){
            
            for(int i=0;i<str.Length;i++){
                if(!char.IsDigit(str[i])){
                       return false;
                   }
            }
            //如果运行到此,就说明所有的字符都是数字。
            return true;
        }
        
        /// <summary>
        /// 返回int数组的和
        /// </summary>
        /// <param name="ints"></param>
        /// <returns></returns>
        public static int Sum(int[] ints){
            int sum=0;
            for(int i=0;i<ints.Length;i++){
                sum=sum+ints[i];
            }
            return sum;
        }

------------------------------------------------
第 15 节 方法重载

  重载(overLoad):在同一类中,允许存在一个以上的同名方法,只要其参数个数参数类型不同即可,与返回值无关。

  编辑器会通过参数来调用相应的方法。

------------------------------------------------
第 16 节 可变长度数组params

  可变参数可以声明为各种类型;

  可变参数前面可以有其他参数,只要合格证可变参数是最后一个就可以。

------------------------------------------------
第 17 节 封装MessageBox及文档注释

  1.MessageBox常用的几个静态方法

    Show(string text)

    Show(string text,string caption)

    DialogResult Show(string text,string caption,MessageBoxButtons buttons,MessageBoxIcon icon);

    buttons为要显示的按钮,icon为显示的图标, DialogResult 为用户点击了哪个按钮

  每次调用都传一堆参数很麻烦,封装一下:

    ShowError:提供指定标题和默认标题两种重载

    ShowYesNo:

      弹出一个提示消息(图标Question ,Yes/no按钮)

      参数:消息内容 ,消息标题

      返回值:boolean(yes->true ,no->false)

  2.文档注释:

    XML格式的

    <summary> 摘要

    <param> 参数的含义

    <returns>返回值含义

如鹏网:http://www.rupeng.com

原文地址:https://www.cnblogs.com/wjs5943283/p/5239196.html