.net技术第四章----程序流程和异常处理
创始人
2024-04-03 20:41:13
0

程序流程和异常处理

  • 前言
  • 顺序结构
  • 选择结构
  • 循环结构
    • for循环语句
    • while循环
    • do…while循环
    • foreach循环
    • 循环的嵌套
  • 跳转结构
    • goto语句
    • break语句
    • continue语句
    • return语句
  • C#异常处理

前言

  • 顺序结构

  • 选择结构
    if语句、switch语句

  • 循环结构
    for语句、while语句、do…while语句和foreach语句

  • 跳转语句
    goto、break、continue、return、throw

  • C#异常处理

顺序结构

  • C#程序中语句执行的基本顺序按各语句出现位置的先后次序执行
    在这里插入图片描述

选择结构

  • 两种控制分支的条件语句:if语句和switch语句

在这里插入图片描述

  • 单分支结构
    if (条件表达式)
    语句/语句块statement(s);

  • 双分支结构
    if (条件表达式)
    语句/语句块1;
    else
    语句/语句块2;

  • 多分支结构

if (条件表达式1)
语句/语句块1;
else if (条件表达式2)
语句/语句块2;

else if (条件表达式n)
语句/语句块n;
[else
语句/语句块n+1;]

循环结构

  • C#提供4种不同的循环机制:for、while、do…while、foreach

for循环语句

计数型循环语句,一般用于已知循环次数的情况,所以也称为定次循环

for (initializer; condition; iterator)
{循环体语句序列;
}sumOdd =0; sumEven = 0;
for (int i=1; i<=100;i+=2) sumOdd +=i;
for (int i=2; i<=100;i+=2) sumEven +=i;

while循环

while(条件表达式)
{
循环体语句序列;
}

do…while循环

该循环的测试条件在执行完循环体之后执行,而while循环的测试条件在执行循环体之前执行

do
{
循环体语句序列;
} while(条件表达式);

int i = 1; int sum = 0;
do
{sum += i; i++; //1~100中所有数的和
} while (i <= 100);

foreach循环

用于循环访问数组或集合以获取所需信息

foreach( 类型名称 变量名称 in 数组或集合名称)
{循环体语句序列;
}
int[] myArray = new int[3] { 10, 20, 30 };  //3个整数的整数数组
foreach (int item in myArray) Console.Write(item+" "); //输出整数数组各元素

循环的嵌套

在一个循环体内又包含另一个完整的循环结构,称为多重循环结构

          String s;for (int i = 1; i <= 9; i++){s = "";for (int j = 1; j <= 9; j++){   //字符串左对齐,在右边用空格填充以达到指定的总长度8s += (String.Format("{0}*{1}={2}", i, j, i * j)).PadRight(8);}Console.WriteLine(s);}

跳转结构

使用跳转语句执行分支,该语句导致立即传递程序控制
goto
break
continue
return
throw

goto语句

将程序控制直接转到由标签标记的语句
goto identifier;
goto case 常量表达式;
goto default;

        int i = 1, sum = 0;loop:if (i <= 100){sum += i; i++; goto loop;}

break语句

  • 在多分支选择switch结构中的作用是跳出switch结构,继续执行switch语句的后继语句

  • break语句还可以用于退出for、foreach、while或do…while循环,即提前结束循环,接着执行循环语句的后继语句

continue语句

  • 类似于break,也必须在for、foreach、while或do…while循环中使用

  • continue语句仅结束本次循环,并返回到循环的起始处,循环条件满足的话就开始执行下一次循环

  • break语句则是结束循环,跳转到循环的后继语句执行

  • continue语句只应用于最里层的语句。若要穿越多个嵌套层转移控制,必须使用goto语句

return语句

终止它出现在其中的方法的执行,并将控制返回给调用方法

int j = 0;
for (int i =100; i<= 200; i++)
{if(i%3==0) continue;Console.Write(“{0}”, i);j++;if(j%10==0) Console.WriteLine();
}
static double CalculateArea(int r)   // 计算面积{double area = r * r * Math.PI;return area; //方法CalculateArea以double值的形式返回变量Area}

C#异常处理

三种错误:编译错误,运行时错误,逻辑错误

C#采用异常来处理系统级和应用程序级的错误状态,如:零除异常、下标越界、I/O错误等
try
{
// 可能引发异常的语句
}
catch (异常类型 异常变量)
{
// 在异常发生时执行的代码
}
finally
{
// 最终必须执行的代码(即使发生异常),如释放资源等
}

        int i1 = 1, i2 = 0, i3, i4;try{i3 = i1 / i2;                     //自动抛出异常DivideByZeroException}catch (DivideByZeroException e){Console.WriteLine("零除错误!");}try{i4 = Int32.Parse("abc");       //自动抛出异常System.FormatException}catch (FormatException e){Console.WriteLine("数值字符串格式错误!");throw e;                     // 重新抛出异常}
  • try-catch语句:一个try块后接一个或多个catch块

  • try-finally语句:一个try块后接一个finally块

  • try-catch-finally语句:一个try块后接一个或多个catch块,后面再跟一个finally块

  • 内置异常类:System.Exception

【例4.23】自定义异常示例(InvalidNumberException.cs)。创建自定义异常,处理应用程序中出现负数参数的异常(例如,学生成绩处理类,不容许成绩为负数)

【例4.24】CLR自动抛出异常示例(ExceptionThrowByCLR.cs)

【例4.25】程序代码抛出异常示例(TryCopyObject.cs):调用方法,如果传入参数为null,则抛出异常

【例4.26】捕获处理异常示例(TryCatchTest.cs)

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...