流控制(控制语句)

程序的代码不是按照从上往下执行的,是按照控制语句执行的.

条件语句

C#中有两个控制语句:if语句还有switch语句

1.if语句   C#中继承了C和C++中的if语句,语法直观.不做介绍.在if语句中特别注意的是,C#中使用”==”对变量进行比较,使用”=”用于赋值.if语句的表达式必须等于布尔值.不给直接测试整数(如从函数中返回的值).

static void Main(string[] args)

{

if (DoSomething() != 0)//这是错误的

{

//DoSomething

}

else

{

//DoSomething

}

}

int DoSomething()

{

return 1;

}

2.switch case语句

string str=Console.ReadLine();

switch (str)

{

case "aaa":

Console.WriteLine("aaa");

break;

case "bbb":

Console.WriteLine("bbb");

break;

case "ccc":

Console.WriteLine("ccc");

break;

}

switch case语句中case的值必须是常量表达式,不能是变量.

C,C++中的switch没有C#中的安全,C#中禁止了所有case中的失败条件.如果激活了快中靠前一条case自居,后面的case子句将不会执行,除非使用共同语句特变表明也要激活后面的case子句,大部分编译器会把没有break语句的case子句标记为错误.

但是有一种例外情况.如果一条case子句为空,就可以从这个case跳到下一个case.例如

string str=Console.ReadLine();

switch (str)//表示str等于aaa和等于bbb和等于ccc的情况一样,都是输出ccc

{

case "aaa":

case "bbb":

case "ccc":

Console.WriteLine("ccc");

break;

}

在switch中default的放置位置可以是任意的,甚至可以把default放在最前面!因此,任何两条case都不能相同,所以不能这样编写:

string str1="syx";

string str2="syx1";

string str=Console.ReadLine();

switch(str)

{

case str1://必须是常量表达式,

case "syx"://不能出现相同的

case "syx":

Console.WriteLine("something");

break;

}

与C++不同的是,C#中可以把字符串作为用作测试的变量,通过上面的例子就可以看出.

循环语句

C#中有四种不同的循环机制(for,while,do...while,foreach).

for(初始值;判断条件;表达式)

for是所谓的与测试循环,因为循环条件实在执行语句钱计算的,如果条件为假,循环语句不执行.

for适合一个语句或语句块重复执行预定的次数.

for(int i=0;i<100;++i)

{

Console.WriteLine(i);

}

执行过程是这样:生命一个int类型的变量i,初始化为0,用做循环计数器,接着测试他是否小于100,如果小于100,执行循环中的代码(如果大于100就不执行循环),接着给计数器加1,

->判断->执行循环,直到不满足判断条件为止.

这里又引出了C#给一个变量加1,可以使用i++,也可以使用i=i+1;

其实最常见的还是for循环嵌套.

for (int i = 0; i < 100; i+=10)

{

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

{

Console.Write(" "+j);

}

Console.WriteLine();

}

Console.ReadKey();

需要说明的是尽管j是一个整数,但它会自动转换为字符串,以便进行连接.

2.while循环

和for循环一样,while循环也是一个需测试循环,语法类似for,但是while循环中只有一个表达式.

while(cindition)

{

statement(s);

}

while循环适合刚开始可能并不知道执行一定的次数,但是在某次的贴袋中,while循环体重的语句把布尔标志设置为false,结束循环.

bool condition =false

while(!condition)

{

DoSomething();

condition=CheckCondition();

}

3.do..while循环

该循环时时乐循环的后测试版本,该循环的测试条件要在执行完循环体之后执行,也就是说do...while循环至少要执行一次循环语句.

4.foreach循环

foreach循环可以迭代集合中的每一项,暂时不必了解集合的概念.

int[] arr = new int[20];

foreach (int item in arr)

{

Console.WriteLine(item);

}

Console.ReadKey();

foreach循环每次迭代数组中的一个元素,把每个元素的值放在int类型的变量item中,因为item是代表集合中的元素,而不是集合的下标,所以不能改变.

foreach (int item in arr)

{

item++;//这是不对的,是不会通过编译的.

Console.WriteLine(item);

}

如果要迭代集合中的各项,并改变他们的值,应该使用for循环.

跳转语句

1.break语句

前面说的break用来退出某个case语句,实际上,break主要是用来推出循环的,该鱼聚会是控制流执行循环后面的语句.

如果该语句放在嵌套的循环中,则break的作用是退出他所临最近的大括号.例如:

for (int i = 0; i < 100; i++)

{

for (int j = 0; j < 100; j++)

{

Console.WriteLine("j= "+j);

break;//退出含有j的for,执行含有i的for

}

Console.WriteLine("i= "+i);

}

Console.ReadKey();

2.continue语句

continue语句类似于break,也必须用在循环中,但是continue的作用是退出循环的当前迭代,执行循环的下一次迭代.

for (int i = 0; i < 100; i++)

{

Console.WriteLine("前面的i= " + i);

continue;

Console.WriteLine("后面的i= " + i);

}

Console.ReadKey();

程序的结果是输出前面的i,后面的i不是输出,在新的编译器上,还会提述Console.WriteLine("后面的i= " + i);该行代码无效,或者执行不到,也就是无效的费代码.

3.return语句

return语句用于退出类的方法,把控制权返回方法的调用者,如果方法又返回类型,return语句必须返回这个类型的值;如果方法的返回值类型是void,则应该没有return语句.

C#编程(五)----流程控制的更多相关文章

  1. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

  2. 自动化运维:(2)Shell 编程的流程控制

    一. if语句 1.单分支if语句——单一条件,只有一个输出 #!/bin/bash # 单if语句的使用场景 if [ "$1" == "nan" ] the ...

  3. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  4. sql编程中流程控制 IF ……THEN……ELSEIF……THEN………END IF

    写mysql存储过程应注意的几点: 1.声明变量(declare)时要注意字符集,用变量存储表字段时,表字段与变量的字符编码要一致. 2.mysql的字符合并不能用‘+’号,必须用concat函数. ...

  5. shell编程之流程控制

    -d 判断该文件是否存在,并且是否为目录文件 -e 判断该文件是否存在 -f 判断该文件是否存在,并且是否为普通文件 形式 [ -e   /home/cao/test.txt ] -r 文件 判断该文 ...

  6. Linux学习笔记(18) Shell编程之流程控制

    1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...

  7. shell编程 之 流程控制(条件语句和循环语句)

    1 if ...else... 基本格式: if condition then commend else commend fi 当然也可以写到一行,用[ ]表明边界,用:表示分行.比如: if [ $ ...

  8. Python黑帽编程2.4 流程控制

    Python黑帽编程2.4  流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容. 2.4.1 if …..else 先上一段代码: #!/usr/bin/python # - ...

  9. [小北De编程手记] : Lesson 06 - Selenium For C# 之 流程控制

    无论你是用哪一种自动化测试的驱动框架,当我们构建一个复杂应用程序的自动化测试的时候.都希望构建一个测试流程稳定,维护成本较低的自动化测试.但是,现实往往没有理想丰满.而这一篇,我会为大家讲解我们在使用 ...

  10. 第10章 Shell编程(4)_流程控制

    5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...

随机推荐

  1. (二) solr 索引数据导入:xml格式

    xml 是最常用的数据索引格式,不仅可以索引数据,还可以对文档与字段进行增强,从而改变它们的重要程度. 下面就是具体的实现方式: schema.xml的字段配置部分如下: <field name ...

  2. Kubernetes 部署kafka ACL(单机版)

    一.概述 在Kafka0.9版本之前,Kafka集群时没有安全机制的.Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等.来获取 ...

  3. Java学习(正则表达式、Date类、DateFormat类、Calendar类)

    一.正则表达式 1.概念:英语:Regular Expression,在代码中常简写为regex.正则表达式,是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串. ...

  4. Hive(六)内置函数与高级操作

    一内置函数 1 数学函数 Return Type Name (Signature) Description DOUBLE round(DOUBLE a) Returns the rounded BIG ...

  5. 【LOJ】#2447. 「NOI2011」兔兔与蛋蛋的游戏

    题解 对于75分来说,操作肯定不会成环,可以暴搜 看成空格在移动,空格移动到原来的位置肯定经历了偶数个格子,但是操作的人是两个不同的人,所以肯定不会成环 对于满分做法,要找到一种更好的方式判先手是否会 ...

  6. win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境

    win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...

  7. Ionic Js十七:侧栏菜单

    一个容器元素包含侧边菜单和主要内容.通过把主要内容区域从一边拖动到另一边,来让左侧或右侧的侧栏菜单进行切换. 效果图如下所示:   用法 要使用侧栏菜单,添加一个父元素,一个中间内容 ,和一个或更 ...

  8. 基于Laravel开发博客应用系列 —— 构建博客后台管理系统

    一个完整的博客应用不能没有后台管理系统.所以在本节中我们将继续完善博客应用 —— 开发后台管理系统. 1.创建路由 在上一节十分钟创建博客项目中,已经设置过了 app/Http/routes.php, ...

  9. Laravel数据库配置问题

    由于项目需要,使用Laravel连接远程数据库进行开发 将默认的数据库配置信息改为远程数据库信息 在模型文件中定义了 protected $connection = 'default' 运行程序,报错 ...

  10. WebSphere部署Spring Boot

    WebSphere Application Server Network Deployment部署 Websphere版本: 8.5.5.12. 这里只简单做操作步骤介绍, 详细的信息请查看IBM的帮 ...