C#学习-基础三
while循环
1、循环三要素: int i=0; while (i<3) { i++; } 循环变量赋初值 循环条件(符合进入循环体,不符合结束循环) 改变循环变量
(1)循环变量 :用于控制循环的变量
(2)循环特点:循环体执行结束后跳转到循环条件处
(3)死循环一定是错误的,必须避免死循环
3、循环程序的编写过程
示例: 从1到100进行累加,从控制台输出结果。
第1步:循环体 while() { sum = sum + ; //本次累加的和 = 上一次循环累加的和 + 本次循环的新值。 }
第2步:改变循环变量 while() { sum = sum + i; //本次累加的和 = 上一次循环累加的和 + 本次循环的新值。 i++; }
第3步:循环初值和循环条件 int i =1 while() { sum = sum + i; //本次累加的和 = 上一次循环累加的和 + 本次循环的新值。 i++; }
4、编程规范
(1)一般情况下,改变循环变量的语句,放在循环变量的最后
(2)一般情况下,循环条件中不使用 <= >= ,而是使用, < > 。 好吃:方便计算循环次数,不使用组合运算符,避免错误 栏杆效应 : 11个栏杆,中间间隔是10个,第1个栏杆开始,第11个栏杆结束,结束的栏杆 编号11,减去开始的栏杆编号1,得到间隔10。
5、break,continue
(1)break,跳出整个循环,不会进行下一次循环
(2)continue 结束本次循环,进行下一次循环。结束循环体的执行,跳转到判断循环条件处 在while中执行continue语句,跳转到判断循环条件处,continue语句之前,应该变循环变量, 否则死循环
for 循环 与双重循环
1、for循环 for (初值;循环条件;改变循环变量) { }
(1) (2) (4)
for(int i = 0; i<3; i++) { i+1(3) }
执行过程
(1)i的值0
(2)循环条件 进入循环
(3)
(4)i值1 (1)for循环的应用场合:固定循环次数 (2)for循环的循环体执行结束后,跳转到i++, while 循环的循环体执行结束后,跳转到判断循环条件 (3)for循环的()中即使没有任何语句也必须有两个分号 (4);被看成空语句 for(int i = 0; i<3; i++);//空语句被循环执行3次 { i+1(3)// 不是循环体,只执行一次 }
(5)编程规范:for循环()中的;之后必须有一个空格
(6)for 循环中的break,和while中的break,一样。 for 循环中的continue,和while中的continue一样,都是结束本次循环,进行下一次循环 for循环中的 结束循环体执行后,跳转到i++
2、双重循环 while() { while() {
} } for() { for() { } }
一维数组
1、数组;可以存放多个同一类型的值,必须指定长度。
(1)声明时,必须指定长度。
不是在声明类型的时候指定长度,而是在给多个值开辟空间的时候,指定长度。
(1.1)int[] nums = new int[5];//创建数组对象,开辟存储空间。
(1.2)int[] nums = new int[]{50,40,30,20,10}//可以通过赋值确定长度。
int[] nums;
nums = new int[]{50,40,30,20,10}
(1.3)int[] nums = {50,40,30,20,10}//声明同时赋值
强调 :不是声明同时赋值,不可以省略new int[]
(2)取数组长度:nums.Length
(3)数组索引从0开始,下标为0的元素,nums[0]
最大索引[nums.Length-1]
nums[5] 编译时不会错误,运行时越界
2、数组的使用
(1)数组的遍历 访问一遍数组中的使有元素
(2)在数组中查找指定的元素
函数
1、为什么需要函数
(1)提取方法:重构》定义方法
(2)函数的好处,减少重复,一次实现,多次调用,易于修改,代码逻辑清晰
2、什么是函数 函数就是功能,function 每一个函数用来实现一个特定的功能。
(1)生活中的函数 原料(参数) 功能(函数) 结果(返回值) 布料 服装厂(做衣服) 衣服 花生,鸡块,葱 厨房 (做菜) 宫保鸡丁
(2)数学中的函数 z = Pow(x,y) 参数(值) 函数 z = Pow(x,y) 结果(返回值) x=2,y=3
(3)程序中已定义的函数 c# 中的Math类 Math.Abs Pow 从元数据
3、函数的使用 先定义并实现函数,才能使用, 书写顺序无关 在一个类中,函数定义在函数调用之上或之下都是可以的
(1)一个完整的函数定义与实现(函数定义必须在一个类中) 在Program主类中,自定义函数
(1.1)函数声明(1、函数名,简单描述功能,与其他函数区分2、如何使用函数(提供什么参数,返回什么)) 返回值类型 double void(没有返回值) 函数名 一般是动词或动名词,不是名词 参数列表:函数声明时的参数。称为形参 需要实参赋值 形参放在(),可以没有形参但是()必须保留 ()是函数的标志。区别于变量 每一个形参都是一个变量,都必须声明类型 形参之间用逗号分隔
(1.2)函数体 :实现函数的功能,也称函数的实现 函数体用{}括起来,{}中没有任何语句,也是一个函数的实现 如果没有{ } 在函数声明后面需要加;
(2) 函数的调用 类名.函数名(实参1,。。)
(2.1)函数调用时的实参,用逗号分隔。实参给形参赋值,实参和形参一一对应
(2.2)函数调用所在的类,与函数定义所在的类,是同一个类时,函数调用时可以省略类名
函数的实现
1、最简单的函数(没有返回值、没有参数)
函数定义: (1)没有返回值 函数声明时,返回值类型为void,代表没有返回值 函数调用时,不能给其他变量赋值
(2)没有参数 ()必须保留。函数定义和调用时,都必须有()
(3)函数的调用过程 F11:逐语句,跳入函数中执行,Shift + F11跳出函数、把剩下的语句一次执行完,返回到函数调用处 F10:逐过程(函数),函数整体被执行,不会跳入函数总 对于Console.Write()函数是从元函数,函数的实现被封装, 无法看到函数的实现,调试时也无法跳入单步执行
(4)函数多次被调用,但函数的定义只有一处,不多占用空间,多次声明变量,每次声明的变量 都占用单独的空间
2、带多个参数,不带返回值 函数定义:
(1)函数声明时,返回值类型为void,没有返回值,所以函数调用时,不能给其他变量赋值
(2)函数调用时,
3、带多个参数,并且带返回值的函数
(1)有返回值的函数,返回值类型不可以是void必须使用reurn语句,提供一个返回值
(2)有返回值的函数,在函数调用结束后,会返回一个值,可以给其他变量赋值。
(3)有返回值的函数。可以被当成值,直接在控制台输出
(4)单步调试。注意观察:返回值是如何被返回的,返回值如何给变量赋值的 把函数调用像变量一样添加监视,注意多次调用时要刷新 return res 中的变量res在函数返回后就死掉了,空间被释放 res的值被保存到一个临时变量处 给函数添加监视实际就是给这个临时变量添加到监视窗口 这个临时变量在函数返回后,给其他变量赋值之后,也被释放空间。无法再次访问这个临时变量。
4、需要返回两个值:引用传递修改实参,,修改实参:ref或out关键字。
(1)使用out关键字 被修饰的形参,在函数体中 只能被赋值 只能传出(函数返回时,形参修改实参),
不可以传入(在函数体中,用out关键字修饰的形参,不能取值,不能给其他变量赋值,)。
public static void AddAndSub(int a,int b,int resAdd,int resSub) { resAdd = a+b; resSub = a-b; } int resOne = 1; int resTwo = 4; AddAndSub(3,2,out resOne,out resTwo) 注意,形参和实参,都必须使用out关键字修饰 public static void AddAndSub(int a,int b,out int resAdd,out int resSub) { int temp = resAdd; resAdd = a+b; resSub = a-b; }
(2)使用关键字ref既可以传入,也可以传出
编程规范:不需要取值,只是传出数据,必须使用out关键字修饰的,不能使用ref关键字 5、细说return语句 (1)用return语句提返回值的情形 return 值 return 变量 或 表达式 //从变量中取值,或者表达式计算后得到一个值 return ;//
(2) 返回值类型到兼容 返回值是放在一个暂存的临时变量处,返回值类型就是这个临时变量的类型 在函数体中,函数返回时,用返回值给临时变量赋值,类型应该兼容。 函数返回到函数调用处,临时变量给其他变量赋值,类型应该兼容。 其他变量 定义时 float fun() { return 3; } 调用时 double d = fun();//函数返回后,相当于double d = 3.0f; 最后d是3.0d
6、变量的作用域
(1)局部变量:函数(方法)中声明的变量。作用域;c从声明时开始到函数体执行结束 形参是在函数的参数列表中声明的,也是局部变量 形参和实参肯定不是在同一个函数中声明的,作用域肯定不一样,所以可以同名
(2)for循环中声明的变量,作用域在for语句循环体中 for() (3)if 或while等{} 中声明的变量,作用域只限制在{}中
浙公网安备 33010602011771号