本章主干知识点:
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>返回值含义