C#学习 第二章 语句控制,if,switch,try-catch,whlie,foreach,break,continue,goto
2014-12-30 16:31
736 查看
以下文章为C#第二章,包括 选择结构if else,switch case,循环结构 do while,while,for,foreach,跳转语言 break,continue,goto
参考图书:《C#:开发技术大全》
一.顺序结构
即按照自上而下的顺序编写程序,不再赘述。二.选择结构
1.if else 语句,不再赘述2.switch 语句
switch语句中,case语句块中的defult语句是指当所有case条件都不符合时,则必须执行default语句,default可写可不写。case语句块中每一个case后面,都必须有一个跳转语句(break或者case)。
在case语句块中,可以使用goto语句,跳转到另一个标签或者其他位置。
一般情况下,default语句放在最后,虽然case语句和default语句的出现顺序没有限制,但将default语句放在switch语句块的结尾是最常用的方式。
三.异常处理
1.一个异常处理语句可以有以下几种情况有一个finally块,无catch块。
有一个或多个相关的catch块,无finally块。
包含一个或多个catch块,同时有一个finally块。
2.throw语句
throw语句用于发生在程序执行期间出现反常情况的信号,throw语句通常与try-catch语句一起使用,可以使用throw语句显示引发异常。
3.try-catch-finally语句
异常发生时,必须处理异常,同时将控制权交给最近的异常处理语句,这就意味着不能按正常的设计思想执行。而且有些资源清理程序(如关闭文件)必须执行,为了实现该功能,可以使用finally块。即便有异常情况发生,finally块也可以清除try块中分配的任何资源,以及运行必须执行的代码。最后控制权总会交给finally块。与try块的退出方式无关。
四.跳转语句
1.break语句break语句用来终止一条循环,使控制流程跳转到循环体外的下一条语句。
2.continue语句
continue语句功能是结束本次循环,返回条件选择部分,重新开始下一次循环。continue语句只能用在循环结构中。
continue语句不会像break语句那样干涉循环体重复的次数,它只是影响某特定循环中的流程控制。
3.goto语句
goto语句属于无条件跳转语句,因为c#允许在代码行上加标签,这样就可以用goto语句直接跳转到这些代码行上,在代码行上必须有其他语句,否则这样是错误的。该语句有其优缺点,优点在于可以方便的控制何时去执行制定代码。缺点在于过多的使用这个语句将降低代码的可读性。
4.return语句
return语句用于终止它所在的方法的执行。并将控制权返回给调用方法。另外它还可以返回一个可选值。如果方法为void类型,则可以省略(此时不可写)。
#region condition /// <summary> /// 条件选择结构 /// if else /// switch case /// 异常处理 /// throw /// try catch /// 异常类继承层次结构为 System.Object->System.Exception->SystemException->派生类 /// 基类Exception 存在以下两种异常 /// 从SystemException派生的预定义公共语言运行库异常。 /// 从ApplicationException 类派生的用户定义的应用程序异常。 /// </summary> class condition { public void test() { // CIR: //跳转标签 Console.Write("请输入一个年份:"); int x=0; try { x = Convert.ToInt32(Console.ReadLine()); } catch (Exception e) //捕获所有异常为关键字Exception,当然也可以指定异常捕获(FormatException e) { Console.WriteLine(); Console.WriteLine("导致异常的对象为:{0}", e.Source.ToString()); Console.WriteLine("导致异常的方法为:{0}", e.TargetSite.ToString()); Console.WriteLine("异常的内容为:{0}", e.Message.ToString()); Console.WriteLine(); // throw e; //在此会捕获异常 // goto CIR; } finally { Console.WriteLine("您输入的年份为:{0}",x); if (x % 4 == 0&&x!=0) { if (x % 100 == 0) { Console.WriteLine("该年份为闰年"); } else if (x % 400 == 0) { Console.WriteLine("该年份为闰年"); } else { Console.WriteLine("该年份非闰年"); } } else { Console.WriteLine("该年份非闰年"); 4000 } } READ: //定义goto的标签。 Console.Write("请输入性别:"); string sex=Console.ReadLine(); sex.ToLower(); //将字符串转换为小写。 switch (sex) { case "男": Console.WriteLine("性别为男性"); break; case "女": Console.WriteLine("性别为女性"); break; case"male": goto case "男"; //在case中使用goto语句。跳转到任意case。 case "female": goto case "女"; default: //当任意一个case都不能匹配时,将执行default语句。 Console.WriteLine("你输入的字符串不能识别"); goto READ; //在case中使用goto语句,跳转到goto标签。 } } }//end of condition #endregion
五.循环结构
1.while与do whilewhlie是先判断再执行,do-while是先执行,再判断,所以do-while无论如何都会执行第一次。
2.for
for语句就不再赘述。
2.foreach
foreach语句是为简化对数组或集合的循环访问而设计的。它为数组或集合中的每个元素重复地嵌入一个语句体。另外,它还可以循环访问集合以获取所需信息,但不能用于更改集合内容以避免不可预知的副作用。
#region circulate /// <summary> /// 循环结构 /// whlie /// do whlie /// for /// foreach /// continue /// </summary> class circulate { public void test() { int a=1,b=1; string[,] str = new string[,] { { "a", "b", "c" }, { "d", "e", "f" } }; while(a<5) //while的执行次数是大于等于0次 { Console.WriteLine("此处为while循环打印,条件为i<5,当前i={0}",a); a += 1; } do //由此可以看出,不管条件怎么样,do whlie都有执行一次,然后才是判断 { Console.WriteLine("此处为do while循环打印,条件为j<5,当前j={0}", b); b += 1; }while(b<5); foreach(string item in str) //对于具有相同特性的对象操作时,可以使用foreach语句, { //如对同一容器(groupbox)内的控件(button)的统一操作 Console.Write(item); } for (int index = 0; index < str.GetLength(0);index++ ) //getlength(0) ,0表示行数,1表示列数 { Console.WriteLine(); for (int jndex = 0; jndex < str.GetLength(1);jndex++ ) { Console.Write(str[index,jndex]); //此处与其他语言的数组不同 } } Console.WriteLine(); for (int i = 0; i < 5; i++) { if (i < 3) { continue; } Console.WriteLine(i.ToString()); } } }//end of circulate #endregion
相关文章推荐
- C++ Primer 学习笔记10 语句 (空语句、if语句、switch语句、for语句、dowhile语句、break语句、goto语句、continue语句、try块和异常处理)
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- C++ Primer 学习笔记_20_语句(续) --break/continue/try,catch
- java===java基础学习(6)---流程控制,for,if,switch,continue,break
- C语言控制语句总结(if else for switch while break continue)
- java程序流程控制,if语句,switch语句,while语句,do while语句,for 语句,break关键字,continue关键字
- Python学习--控制语句:if, while, for, break, continue
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- if,continue,break,while,do-while, switch,return,foreach,for等条件语句的使用
- 《Go学习笔记 . 雨痕》流程控制(if、switch、for range、goto、continue、break)
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- java个人学习笔记03(if、switch、break、continue)
- 流程控制陷阱(Switch语句,标签,if语句,for循环,foreach循环的循环计数器)
- C#基础系列问题一break、continue、return、goto语句
- 【转】C# 跳转语句(break,continue,goto,return,throw)
- [引]C#参考 跳转语句(break,continue,goto,return,throw)
- [引]C#参考跳转语句(break,continue,goto,return,throw)
- C语言学习3:if ,for,do..while,continue和break,goto,swtich,输入输出缓存区,随机数产生
- Java学习笔记_14_switch、continue、break执行语句要点
- C#语句控制 判断语句、case里面的goto语句、foreach语句