4.4.1 条件语句
1. if语句
//if 语句语法代码
if(condition)
statement(s)
or
if(condition)
statement(s)
else
statements(s)
//*整数类型不能隐式地转换为bool类型,必须把返回的整数转换为bool值true或false.
2.switch 语句
//switch语句语法代码
switch(controlling-expression)
{
case constant-expression;
embedded-statements;
break;
default;
embedded-statements;
}
//* 控制表达式(controlling-expression)的数据类型可以是sbyte,byte,short,ushort,uint,long,ulong,char,string或枚举类型。
//* if有两个或两个以上case标记中的常量表达式值相同,translate 出错。
//* 在switch语句中最多只能有一个default标记。
4.4.2 循环语句
4种不同的循环语句:
1.for语句
//for 语句语法代码
for(initializer;condition;iterator)
embedded-statement
//*initialzer,condition,iterator三项是可选项。
2.foreach语句
//foreach 语句语法代码
Foreach(type identifier in expression)
embedded-statement
//*类型(type)和标识符(identifier)用来声明循环变量,表达式(expression)对应集合。每执行一个内嵌语句,循环变量就依次取集合中的一个元素代入其中。
//*在这里,循环变量只是一个只读型局部变量。or 将它作为一个ref or out 类型的参数传递时,都将引发编译出错。
//*foreach语句中的expression必须是集合类型。
//*集合中的元素类型到循环变量元素类型必须转换。
EG:
using System;
using System.Collections;
class Test
{
static void WriteList(ArrayList list)
{
foreach(object o in list)
Console.WriteLine(o);
}
static void Main()
{
ArrayList list=new ArrayList();
for(int i=0;i<10;i++)
WriteList(list);
}
}
3.while 语句
//while 语句语法代码
while(boolean-expression)
embedded-statement
EG:
bool Condition=false;
while(!condition)
{
DoSomework();
condition=Checkondition();
}
4.do-while 语句
// do-while循环语句示例代码:
bool Condition;
do
{
DoSomework();
Condition=CheckCondition();
}
while(Condition)
4.4.3 跳转语句
(c#)五个跳转语句:goto,break,continue,return,throw
//*if 没有 try 语句,则跳转语句无条件地将控制从跳转语句转到它的目标。
//*if 跳转语句欲退出的是一个或多个具有相关联的finally块的try块,则控制最初转到最里层的try语句的finally块。if控制到达该finally块的结束点时,控制就转到下一个封闭的try语句中的finally块。过程不断重复,直到执行完所有涉及try语句的finally块。
1、goto语句
//Label标识符示例代码:
Label1:
DoSomeWork();
//goto语句语法代码:
goto-statement:(goto语句)
goto identifer;(goto 标识符)
goto case constant-expression;(goto case 常数表达式)
goto default;(goto default;)
2.break 语句
//*用来退出最近的switch,while,do,for和foreach语句的循环。
3.continue 语句
//*continue语句开始直接封闭它的while,do,for,foreach语句的一次新迭代。
continue 语句语法代码
continue-statement
continue;
4.return 语句
//*返回对语句中的成员控制(无表达式的return语句只能在无返回值的成员中应用)
//*带表达式的return语句只能在返回表达式的函数成员中运用。
//return 语句语法代码
return-statement;
return expressionopt;
(*不带表达式的return语句只能用在不计算值的函数成员中,即只能在返回类型为void的方法,属性或索引器的set访问器,事件的add和remove访问器,实例构造函数,静态构造函数或析构函数中。带表达式的return语句用在计算机值的函数成员中,即返回类型为非void的方法,属性或索引器的get访问器或用户定义的运算符。必须存在一个隐式转换,能将该表达式的类型转换到包含它的函数成员的返回类型*)
5.throw 语句
用来抛出异常,常与try相关。(*try语句提供一个在程序块执行过程中捕获异常的机制,此外,try语句还提供当try语句脱离控制时总是要执行的代码块。*)
4.4.4 异常处理
异常产生的原因主要有两点:一是throw语句用于立即无条件地引发异常。控制永远不会到达紧跟在throw后面的语句。二是非功过处理C#语句和表达式的过程中,出现特殊情况,引发一个异常。EG:整数除法运算中,分母为零。引发System.DivieByZeroException.
(c#)异常处理语句:一是try-catch捕获异常;二是使用try-finally清除异常;三是用try-catch-finally处理所有异常。
1.捕获异常语句
//(C#)使用try-catch语句捕捉异常
EG:
try
{
for(;n<=max;n++)
sum*=n;
}
catch(OverfolwException oe)
{
Console.WriteLine("溢出");
return;
}
2.清除异常
//try-finally结构用于清除异常。
EG:
try
{
for(;n<=max;n++)
sum*=n;
}
finally
{
console.WriteLine("溢出");
return;
}
//上finally子句中的代码在任何情况下都会被执行,即使没有异常发生。
3.处理所有异常
try-catch-finally处理所有的异常
EG:
try
{
for(;n<=max;n++)
sum*=n;
}
catch (OverfolwException oe)
{
Console.WriteLine("溢出");
return;
}
catch(Exception e)
{
//捕捉所有异常
}
finally
{
}
4.抛出异常
//可先抛出异常,然后进行捕捉。
throw-statement;
throw expression;
(*带表达式的throw语句引发一个异常,此异常的值是通过计算机表达式而产生的值。计算该表达式所得的值必须属于类类型System.Exception 或 从System.Exception派生的类类型,if 表达式的计算产生null,引发System.NullReferenceException.i 不带表达式的throw语句只用于catch块中,这种情况下,该语句重新引发当前正由该catch块处理的那个异常*)