A3第三章第1节For循环入门第1节 for(初始化表达式;循环条件表达式;循环后的操作表达式) { //循环体语句; }
最开始先执行“初始化表达式”(只是执行一次),然后循环执行:先判断“循环条件表达式”。如果为ture。则执行“循环体语句”,然后执行循环后的操作表达
A3第三章第3节For循环案例:1加到n(震撼的算法)第3节 方法1: int n=Console.ToInt32(textBox1.Text);//普通方法 int sum=0; for(int i=1;i<=n;i ) { sum=sum i; } MessageBox.Show(sum.ToString());//时间复杂度为O(n) MessageBox.Show(convert.ToString(sum));//另一种写法 方法2: int sum=n*(n 1)/2;//时间复杂度为O(1)//面试经常考试 MessageBox.Show(sum.ToString());
A3第三章第5节while循环第5节 while(条件表达式) { 循环体; i ;//循环后的操作表达式 }
每次循环前判断“条件表达式”,如果为true,则执行“循环体”,然后在进行下一次循环判断。 for和while在实现上可以互相代替,一般for用的频率比while高,在io、ADO.Net中用到while
A3第三章第6节dowhile和break、continue 第6节 1、do
{
循环体; i ;
}
while(条件表达式);
2、先执行一次“执行语句”再判断“条件表达式”决定是否进入下次循环。
演示,使用do while实现打印五遍“如鹏网”
int x=0;
do
{
Console.WriteLine(“如鹏网”);
x ;
}
while(x<5);
3、do...while和while的主要区别:do...while的执行语句至少执行一次,while的执行语句可能一次都不执行。do...while用的更少。 4、break终止最近的循环------------------------------------------------------------ 5、终止本次循环之后的代码,接着进行下一次循环。----------------------
A3第三章第7节数组的声明和使用
第三章第7节 1、数组是存储多个数组的容器 2、类型[ ] 数组名=new 类型[ 个数] 3、比如:int [] arr=new int[5]; string[] s2=new string[3];
4、读写方式:读:int x=arr[0];int y=arr[3]; 写: arr[2]=9; 5、在读写的时候,数组名后的[ ]叫序号,又叫下标。指的是对第一个元素进行操作,从0开始,所以最后一个元素序号是 “个数-1” 6、第二种定义的方法,适应定义时就确定元素个数和内容,用的较少:int[]={2,34,5,6,4,45}; 7、同样盘算一个字符串也是从0开始到Length-1 例如: 检查一串字符是否为全是数字 string a1="123213423dsafas"; for(int i=0;i<a1.Length;i ) { char c=a1[i]; if(char.IsDigit(c)) { console.WriteLine("是数字"); } else { console.WriteLine("不是数字"); } }
A3第三章第8节数组的遍历及案例
第三章 第8节 1、对于int 、double、float等数组,没有赋值的元素被初始化为0;对于string等引用类型初始化为null 2、数组下标越界异常。不要超过数组的大小。不要去length 3、能否动态增加数组的大小?不能,要用List等。 4、可以通过arr.Length获取数组的长度,改写如下,这样避免了5写死的问题 (避免魔法数) 如: FOR(int i=0;i<arr.Length;i )//写成这样!!! { Console.WriteLIne(arr[i]); }
FOR(int i=0;i<5;i )//而不是这样的。。。 { Console.WriteLIne(arr[i]); } 5、
A3第三章第12节方法入门
第三章第12节 1、如果程序跟多地方都要计算一个数组的最大值,难道每次都要写一堆代码吗?抽象出方法(Method)/函数(函数); 2、方法主要的格式: static 返回值类型 方法名(参数类型 参数1,参数类型 参数2.......) { }//返回值类型,与参数类型不一定是一样的 3、目前所有的方法都加上static,以后将why 4、封装一下getMax
A3第三章第14节数组案例讲解和练习说明
第三章第14节 1、方法就是一堆可以重复使用(复用)的代码段,执行过程中无法确定的数据以参数形式传递:方法的执行结果以返回值进行返回。不能在方法中定义方法; 2、方法可以没有参数;方法可以没有返回值(加void);方法中用return返回处理结果。执行return之后方法内部的代码就执行结束了; 3、如果没有返回值,则在需要执行结束的地方return;如果没写return,则在最后一句return; 4、方法中的局部变量,不能被调用的方法访问。如果真要访问只能通过参数传递值,并且只是相当于变量赋值,方法内部对参数的赋值不会影响调用者。方法也不能调用调用者的局部变量; 5、一个问题:不是所有的路径都有返回值。
A3第三章第16节可变长度数组params
第三章第16节 1、使用关键字params这样就可以自由调用 如: int i=sum(32,23,3,4,343,443);
//这些参数其实还是以数组形式传递过去的,在sum看来,也是数组,只不过编译器会自动将这些,参数封装为数组,简化了调用,通过ILSpy可以看出来。
而不需要再通过先声明一个数组样式; 如: int [] arr={32,23,3,4,343,443}; int i=sum(arr); 2、可变参数前边还可以有其他参数,只是保证可变参数是最后一个就行, 如: sum(int name,params string[] data )
A3第三章第17节封装MessageBox及文档注释
第三章第17节 1、DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon); buttons为要显示的按钮,icon为显示的图标, DialogResult 为用户点击了哪个按钮 2、定义一个弹窗的方法以及调用该方法 如下:
if (ShowYesNo("真的要删除吗?")) { MessageBox.Show("开始删除"); } else { MessageBox.Show("取消删除"); }
static bool ShowYesNo(string msg) { DialogResult ret = MessageBox.Show(msg, "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question); /* if (ret == DialogResult.Yes) { return true; } else { return false; }*/ return ret == DialogResult.Yes; }