方法、决策循环语句及异常处理_第1页
方法、决策循环语句及异常处理_第2页
方法、决策循环语句及异常处理_第3页
方法、决策循环语句及异常处理_第4页
方法、决策循环语句及异常处理_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、方法、决策、循环语句及异常处理淮安微软技术中心本章目标理解如何使用方法及方法的重载决策与循环语句使用异常捕捉和处理错误回顾 C# 中的命名空间using System;using System.Collections.Generic;using System.Text;namespace HelloWorld class Program static void Main(string args) / 系统定义的命名空间自定义的命名空间命名空间:一种组织代码的方法 代码及内容唯一标识 避免类重名回顾 引用命名空间using System; /引用 System 命名空间namespace Hel

2、loWorld class Program static void Main(string args) Console.WriteLine(Hello World); /不引用 System 命名空间/ using System; namespace HelloWorld class Program static void Main(string args) / Console.WriteLine(Hello World); System.Console.WriteLine (Hello World); 如果不使用using,要使用完全限定名称WriteLine() 方法的完全限定名称使用 u

3、sing 引用命名空间回顾如何避免重复性的操作,并使程序容易理解? static void Main(string args) string firName, secName; int firAge, secAge; Console.WriteLine(请输入第一名学员的姓名:); Console.Write(); firName = Console.ReadLine(); Console.WriteLine(请输入第一名学员的年龄:); Console.Write(); firAge = int.Parse(Console.ReadLine(); Console.WriteLine(请输入第

4、二名学员的姓名:); Console.Write(); secName = Console.ReadLine(); Console.WriteLine(请输入第二名学员的年龄:); Console.Write(); secAge = int.Parse(Console.ReadLine(); Console.WriteLine(第一名学员的姓名是: + firName + ,他今年 + firAge + 岁.); Console.WriteLine(第一名学员的姓名是:0,他今年1岁.,secName,secAge); 源代码声明方法什么是方法?使用方法有什么好处?类的行为,便于修改、增加可读

5、性、可重用、封装C# 中方法的定义形式:访问修饰符 返回类型 方法名 ( 参数列表 ) / 访问修饰符:public , private , protected / 返回类型:void ,int,string. / 方法名:单词首字母小写-Camel命名法 / 参数列表:可选 / 方法的主体 / 如果返回类型不为void,使用return返回相应类型的值 / return str; return语句应放在方法尾部,它会造成方法的结束。return语句后的任何语句都不会被执行调用方法方法的存在就是为了被使用public int addValues(int firstNum, int Second

6、Num) /.int arg1 = 32;int arg2 = 24;int i = addValues(arg1, arg2);使用方法: 方法名( 参数列表 )方法名与被调用的方法名称一致用于提供由方法接收的可选信息,必须为每个参数提供一个参数值变量作用域变量的作用域是指能够使用该变量的程序区域/ / 局部作用域/ class Example public void firstMothod() int myVar; /局部变量 public void anotherMothod() myVar = 42; /错误 -变量越界 / / 类作用域/ class Example public v

7、oid firstMothod() myField = 32; /ok public void anotherMothod() myField = 64; /ok int myField = 0;开发者用“字段”来描述一个类定义的变量。myField是在类的内部以及两个方法的外部定义的。所以myField可以由类中的所有方法使用。注意:在一个方法中,必须在使用一个变量前声明它。但是一个方法能在定义一个字段的语句之前使用那个字段,编译器为我们搞定一切。方法的重载class Example static void Main() new Example().sayHi(“zane”); new Ex

8、ample().sayHi(31); public void sayHi(string name) Console.WriteLine(“我叫0“,name); public void sayHi(int age) Console.WriteLine(“我今年0 岁“, age); /两个方法名相同,而且在同一个作用域中声明,我们称之为重载方法名一致参数列表或参数类型不一致更改后的代码static void Main(string args) private void Print(string str) Console.WriteLine(str); Console.Write(); priv

9、ate void Print(string name1, string name2, string age1, string age2) Console.WriteLine(第一位学员的姓名是: + name1 + ,他今年 + age1 + 岁); Console.WriteLine(第二位学院的姓名是:0,他今年1岁,name2,age2); Console.ReadLine(); private string Read() return Console.ReadLine(); 源代码关系运算符与复合赋值类别操作符描述主要()覆盖优先级一元!逻辑NOT关系运算符=小于小于或等于大于大于或等

10、于相等=!=等于不等于条件&|逻辑AND逻辑OR赋值=复合赋值*=/=%=+=-=answer = answer + 42; answer += 42;C# 中的条件判断条件判断语句C#ifif ( ) if else if ( ) else if ( ) else switchswitch() case : break; default : break嵌套 if语句机票预定:输出实际机票价格原价为4000元5-10月为旺季,头等舱打9折,经济舱打7.5折其他时间为淡季,头等舱打6折,经济舱打3折需要两次判断首先判断是旺季还是淡季再判断头等舱还是经济舱嵌套 if 实现演示示例:使用嵌套 if

11、计算机票价格代码分析关键代码回顾if (month = 5 & month = 10) / 旺季 if (type = 1) / 头等舱 Console.WriteLine(您的机票价格为:0, price * 0.9); else if (type = 2) / 经济舱 Console.WriteLine(您的机票价格为:0, price * 0.75); else / 淡季 / 示例源代码嵌入的一对 ifelse嵌套 if 语法小结if(表达式1) if(表达式2) / 表达式2为真时执行 else / 表达式2为假时执行 else /表达式1为假时执行嵌套 if :if 块中又嵌入 if

12、switch 结构switch (int / char / string表达式) case 常量表达式1: 语句1; break; /必须有 case 常量表达式2: 语句2; break; /必须有 default: 语句n; break; /必须有C#使用 switch 示例有两名学员的姓名、考试科目、成绩根据输入的姓名,按以下方式输出该名学员的成绩 演示示例:利用 switch 输出学员信息 姓名科目分数张三C#91示例 分析关键代码回顾string choice = Console.ReadLine(); / 输入学员姓名switch ( choice ) case 张三: Conso

13、le.WriteLine( 0t1t2, name1, subject1, score1); break; case 李四: Console.WriteLine(0t1t2, name2, subject2, score2); break; default: Console.WriteLine(抱歉!没有你要找的学员!); break;string 类型t 使输出制表示例源代码 常见错误string choice = Console.ReadLine(); / 输入学员姓名switch ( choice ) case 张三: Console.WriteLine( 0t1t2, name1, s

14、ubject1, score1); /break; case 李四: Console.WriteLine(0t1t2, name2, subject2, score2); /break; default: Console.WriteLine(抱歉!没有你要找的学员!); /break;错误原因:case 和 default 中都缺少 break 语句使用 switch 示例输入一个时间(整数)在6-10点之间,输出“上午好”在11-13点之间,输出“中午好”在14-18点之间,输出“下午好”其他情况输出“休息时间” 演示示例:使用 switch 问好C# 中的 switch 结构小结条件判断的

15、表达式类型 整型或字符串break 语句的要求:每个 case 都有 breakdefault 也要有 break特殊情况:/ 示例6中的代码string time;switch(time) case 6: case 7: case 8: case 9: case 10: Console.WriteLine(上午好 ); break; / default: Console.WriteLine(休息时间); break;case 中没有其他语句时,不需要break语句小结输入一个时间如果是6点输出“该起床了”如果是12点输出“该吃饭了”否则输出“该睡觉了”使用 switch 语句实现string

16、 time = Console.ReadLine(); / 输入时间switch (time) / 判断 case 6: Console.WriteLine(该起床了); break; case 12: Console.WriteLine(该吃饭了); break; default: Console.WriteLine(该睡觉了); break;查看源代码C# 中的循环迭代循环语句C#dowhiledo /二者的语法和操作相同! while(条件)whilewhile(条件) /二者的语法和操作相同!forfor(初始值; 条件; 增/减) /二者的语法和操作相同!foreach新特性!for

17、each 循环结构foreach循环一般用于遍历整个集合或数组foreach (元素类型 变量名 in 集合或者数组名) / 语句输入一个字符串,输出其中的每个字符演示示例:foreach,简单调试示例分析关键代码分析static void Main(string args) Console.WriteLine(请输入一个字符串:); / 输入提示 / 从控制台读入字符串 string line = Console.ReadLine(); / 循环输出字符串中的字符 foreach (char c in line) Console.WriteLine(c); Console.ReadLine(

18、);示例源代码依次循环字符串中的每个字符VS调试技巧断点(breakpoint):通知调试器应在某点上中断应用程序并暂停执行调试常用快捷键:F5开始调试Shift+F5停止调试F9设置或删除断点F10单步执行监视(watch)窗口:计算变量和表达式的值二重循环 某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分共3个班级,循环3次计算每个班的平均分每班4名学员,循环4次累加总分需要使用二重循环实现for、while、do-while、foreach 语句可以相互嵌套 演示示例:二重循环示例,跟踪调试示例分析关键代码/ 外层循环控制逐个计算每个班级的平均分for (i = 0; i

19、 3; i+) sum = 0; / 总分计数清零 Console.WriteLine(n请输入第0个班的成绩,i+1); / 内层循环计算每个班级的总分 for (j = 0; j 4; j+) Console.Write(第0个学员的成绩:, j+1); score= int.Parse(Console.ReadLine(); sum = sum + score; average = sum / 4; Console.WriteLine(第0个班的平均分为:1分,i+1,average);内层循环结束后,才执行外层循环的语句示例源代码二重循环进阶用 * 打印一个直角三角形图案二重循环:外层

20、控制行数,内层打印每行的 *图形特点:每行的 * 个数与行数相等演示示例:用 * 打印直角三角形示例代码分析关键代码int rows = 5; / 打印的行数int i, j; / 循环变量/ 外层循环控制打印的行数for (i = 1; i = rows; i+) / 内层循环控制每行打印*的个数 for (j = 1; j = i; j+) Console.Write(*); Console.Write(n);内层循环的结束条件与外层循环变量有关示例源代码流程控制进阶在循环结构中, continue 和 break怎样跳转?for() continue; for() break; 跳出循环

21、结构跳到下次循环在二重循环中会怎样呢?流程控制进阶continue下面红色框中代码的作用是什么?int count = 0; for (i = 0; i 3; i+) / 提示输入成绩 for (j = 0; j 4; j+) Console.Write(第0个学员的成绩:, j + 1); score = int.Parse(Console.ReadLine(); sum = sum + score; if (score 85) continue; count+; / 计算平均分并输出continue 跳出本次循环,继续下一次循环演示示例:使用断点调试观察程序执行过程统计成绩在85分以上的学

22、员人数流程控制进阶break 5个专卖店促销,每个专卖店每人限购3件衣服,可以随时选择离开,离店时要结账for(i=0;i5;i+) / 每次进一个专卖店 for(j=0;j3;j+) / 每个店限购3件 if(离开这家店) break; 选购一件衣服 结账演示示例:break 进阶示例5分析关键代码回顾示例源代码for (i = 0; i 5; i+) /外层循环控制依次进入下一个专卖店 Console.WriteLine(n欢迎光临第0家专卖店,i+1); for (j = 0; j 3; j+) / 内层循环一次买一件衣服 Console.Write(要离开吗?y/n); choice = Console.ReadLine(); if (choice = y) / 如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论