1、C#之流程控制语句:计算机程序执行的控制流程由三种基本的控制结构控制,即顺序结构,选择结构,循环结构

1) 顺序结构:从上到下,按照书写顺序执行每一条语句,不会发生跳跃。

代码段1; // 先执行代码段1
代码段2; // 接着执行代码段2
...

2)选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

if 结构

if( 条件 )
{
条件成立执行语句;
}

if-else结构

if(条件) {
条件成立执行;
}
else
{
条件不成立执行;
}

if else-if

if(条件1)
{
条件1成立执行代码段;
}
else if (条件2)
{
条件2成立执行代码段;
}
else
{
条件都不成立执行代码段;
}

switch-case

switch( 要判断的变量或者表达式 )
{
case 值1 :
执行语句1;
break; // switch的穿透性--不加break
case 值2 :
执行语句2;
break;
default:
默认执行语句;
break;
}

当要判断的变量或者表达式与其中一个case语句中的值相符时,就执行此case语句后面的语句,除非遇到break;语句跳出switch语句为止。如果要判断的变量或者表达式与所有case语句的值都不相符,就执行default语句中的语句并跳出switch语句。

4)循环结构:在给定条件成立的情况下,反复执行某一段代码。

while

while( 循环条件 )
{
循环体;
}

while 中的循环条件成立时就会执行大括号里面的程序;

continue 结束当前的循环,进入到下一个循环;

break 终止整个循环,不再执行大括号里面的程序,进入下一步程序;

do-while:

do{
循环体;
}
while ( 循环条件 );

do-while 首先执行do中的循环体,执行完成后,去判断循环条件是否成立,如果成立,则继续回到do中执行循环体,如果不成立,则跳出do-while循环。

特点:先执行,再判断,最少执行一遍循环体。

for:

for(int i = 0; i< 10; i++)
{
要循环执行的内容 ;
}

int i = 0; 是初始条件  i < 10是循环条件  i++ 是技数状态改变

跟while循环一样,在循环体内使用 continue; 结束当前的循环,进入到下一个循环;

循环体内使用 break 终止整个循环,不再循环体中的程序;for一般在有明确循环次数的程序上使用。

循环嵌套:

for( int i =0; i < 10;i++)
{
for(int j =0; j < 10;j++)
{
  ...
}
}

foreach:C# 也支持 foreach 循环,使用foreach可以迭代数组或者一个集合对象。

foreach( var item in list)
{
...
}

 foreach在处理集合和数组相对于for存在以下几个优势:

  • foreach语句简洁;
  • 效率比for要高(C#是强类型检查,for循环对于数组访问的时候,要对索引的有效值进行检查);
  • 不用关心数组的起始索引是几(因为有很多开发者是从其他语言转到C#的,有些语言的起始索引可能是1或者是0);
  • 处理多维数组(不包括锯齿数组)更加的方便。

2、try-catch异常捕获

try{
可能会出现异常的代码;
} catch (Exception ex) // ex-可能出现异常的异常信息
{
// 出现异常后要执行的代码;
} finally{
无论是否出现异常都会执行的代码;
}

执行过程:当try中的代码出现异常的时候,出现异常的这行代码后面的代码不会被执行。 跳到catch中执行catch的代码。

C# 程序运行中的流程控制的更多相关文章

  1. python中的流程控制

    目录 引言 流程控制的分类 分支结构 单if结构 if与else结构 if与elif与else结构 if分支的嵌套 循环结构 while循环 while + break循环 while + conti ...

  2. Java中的流程控制(三)

    关于Java中的流程控制 关于Java中的流程控制 4.do while语句 do while语句的功能和while语句差不多,只不过它是在执行完第一次循环后才检测条件表达式的值,这意味着包含在大括号 ...

  3. Python基础之:Python中的流程控制

    目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样 ...

  4. zigbee学习:示例程序SampleApp中通讯流程

    zigbee学习:示例程序SampleApp中通讯流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://wjf88223.bl ...

  5. 程序运行中(BSS段、数据段、代码段、堆栈)

    程序运行中(BSS段.数据段.代码段.堆栈) BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简 ...

  6. 内存模型 Memory model 内存分布及程序运行中(BSS段、数据段、代码段、堆栈

    C语言中内存分布及程序运行中(BSS段.数据段.代码段.堆栈) - 秦宝艳的个人页面 - 开源中国 https://my.oschina.net/pollybl1255/blog/140323 Mem ...

  7. C中的流程控制

    一. 流程控制 l 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. l 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. l 循环结构:在给定条件成立的情况下,反复执行某一 ...

  8. Java中的流程控制(二)

    关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...

  9. Java中的流程控制(一)

    程序的流程控制(一) 关于Java程序的流程控制(一) 从结构化程序设计角度出发,程序有三种结构: 顺序结构 选择结构 循环结构 1.顺序结构 就是程序从上到下一行行执行,中间没有判断和跳转. 2.i ...

随机推荐

  1. java--多线程编程简介

    1.什么时候使用多线程编程 一个任务在正常情况下是按顺序执行的,但是如果当前任务里有多个相似进程块(例如for,while语句),我们就可以考虑把这些代码块抽出来并行运行,无需阻塞 2.实现多线程的几 ...

  2. vue移动端h5页面根据屏幕适配的四种方案

    最近做了两个关于h5页面对接公众号的项目,不得不提打开微信浏览器内置地图导航的功能确实有点恶心.下次想起来了的话,进行总结分享一下如何处理.在vue移动端h5页面当中,其中适配是经常会遇到的问题,这块 ...

  3. 主机和docker容器拷贝文件

    从主机复制到容器sudo docker cp host_path containerID:container_path 从容器复制到主机sudo docker cp containerID:conta ...

  4. UVa 11346 Probability (转化+积分+概率)

    题意:给定a,b,s,在[-a, a]*[-b, b]区域内任取一点p,求以原点(0,0)和p为对角线的长方形面积大于s的概率. 析:应该明白,这个和高中数学的东西差不多,基本就是一个求概率的题,只不 ...

  5. Java 注解概要

    转载自:https://www.cnblogs.com/peida/archive/2013/04/24/3036689.html(Java注解就跟C#的特性是一样的) 要深入学习注解,我们就必须能定 ...

  6. BSD Socket (java)

    服务器 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java ...

  7. MySQL的NO_BACKSLASH_ESCAPES

    官方说明: https://dev.mysql.com/doc/refman/5.7/en/mysql-real-escape-string.html 相关资料: https://dev.mysql. ...

  8. 解决 multiple definition of

    总结了解决multiple definition of的方法: 问题原因:    当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译#ifndef TEST_H#define TEST_H ...

  9. java细节问题

    保留两位小数:1.234, 1.23, 1.2, 1.0, 1. package test; import java.math.BigDecimal; import java.text.Decimal ...

  10. SpringMVC绑定到实体数组、list、set、和map时要注意

    实体的属性前一定要用.分割,如果是使用jquery的ajax提交的一个js数组对象,则请求数据会被格式化为 var sub = [{name:1,num:2},{name:1,num:2}] $.po ...