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等{} 中声明的变量,作用域只限制在{}中

posted on 2018-03-13 07:43  elif_syh  阅读(228)  评论(0)    收藏  举报

导航