.NET基础——循环、枚举
1. 循环结构
3种循环语句:while、do-while、for
面对循环我们应当注意:
1. 循环在做什么?(重复做的事情——也就是循环体的内容)
2. 循环的终止条件是什么?(循环条件)
3种循环的特点:
while循环的特点:先判断,在执行
do-while循环的特点:先执行,后判断。循环体至少会被执行一次。
for循环的特点:用于已知循环次数的循环。 语法: for(表达式1;表达式2;表达式3){循环体}
表达式1: 用于定义循环变量和为循环变量赋初值。(如,int i = 0;)
表达式2: 循环条件(如,i < 10;)
表达式3: 改变循环变量的值(如,i++;)
执行过程: (1)计算表达式1,转向(2)
(2)计算表达式2,如果表达式2的值为true,转向(3);如果表达式2的值为false,转向(5)
(3)执行循环体,转向(4)
(4)执行表达式3,转向(2)
(5)循环结束
for循环的三个表达式都可以省略,如果表达式2被省略的话,就会变成死循环。 for(;;){}
在做项目的时候,我们要因地制宜地使用这3种循环结构。
2. break 和 continue
break的作用:
1. 可以用于switch-case判断中,用于跳出switch
2. 用在循环中,可以立即跳出(终止)循环。注意:跳出的是break所在的循环。
continue的作用:
1. 用在循环中,可以立即结束本次循环,不再执行后面的循环体语句,直接进入下一次循环。
2. 对于 do-while和white 直接进行下一次循环条件的判断,如果条件成立,则再次进入循环。
3. 对于for循环,先执行表达式3,再判断循环条件是否成功。
3. 跳出双重循环的方法
(1)设置一个标志 flag
(2)跳出内循环,flag = true
(3)在外循环,判断:flag为true时,跳出外循环。
4. 枚举
1. 枚举也是一种类型,它的本质是值类型。
枚举的作用:为了固定一个变量的“范围”,也方便程序员的使用;限制用户不能随意赋值,只能赋在定义枚举时列举的值中选择。
[public] enum 枚举名
{
成员1,成员2, … , 成员n
}
2. 注意
(1)C#中枚举项都是常量,在定义枚举的时候,需要指定枚举的所有值
(2)不能定义方法/属性/事件,定义枚举时,值不能是int类型
(3)枚举的值在定义时是有一个默认编号的,编号从0开始
(4)多个枚举项有相同数值时,数值强转时,会返回第一相等的枚举项
(5)枚举类型的变量可以直接输出,都可以被强制转换成一个int类型
(6)把一个字符串转换成枚举类型:(枚举名)(Enum.Parse(typeof(枚举名),"待转换的字符串");
这里的函数 typeof() 的作用是获取 参数的数据类型,因为枚举类型是我们自定义的类型,所以在转换的时候,需要明确告诉编译器,目标类型是何种枚举类型。
枚举类型转换成字符串: 枚举变量名.ToString();
除了枚举,其他类型也可以调用ToString() 转换成string类型。
(7)将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。
3. 代码
在编程时为枚举变量赋值, 我们写到“ Status s =”的时候,可以按下空格键或者ctrl+J,就会出现提示。
public enum Status
{
Open = ,
Continue2 = ,
Continue = ,
Close = ,
} class Program
{
static void Main(string[] args)
{
//枚举值和int的相互转换
Status sta = Status.Close;
//多个枚举项有相同数值时,数值强转时,会返回第一相等的枚举项
Console.WriteLine(Status.Close.ToString()); // 输出:Continue2,不是Close
Console.WriteLine((int)sta); // 输出:2 int staInt = ;
//根据数值转枚举值时,会取到第一个 相同数值的枚举值
Console.WriteLine((Status)staInt);// 输出:Continue2 long l = ;
TestEnum(l);// 输出:10 //字符串转枚举值
string strE = "Continue";
Status sta2 = (Status)Enum.Parse(typeof(Status), strE);
Console.WriteLine(sta2);// 输出:Continue2
Console.ReadLine();
} static void TestEnum(long s)
{
//int转为枚举,如果int的值超出了枚举的范围,则保持原来的值不变,还是int
Console.WriteLine((Status)s);
}
}
.NET基础——循环、枚举的更多相关文章
- 【搬砖】安卓入门(3)- Java开发编程基础--循环控制语句
04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } 复制代码 B:循环结构for语句的 ...
- Java 基础之-枚举
目录(?)[-] 用法一常量 用法二switch 用法三向枚举中添加新方法 用法四覆盖枚举的方法 用法五实现接口 用法六使用接口组织枚举 用法七关于枚举集合的使用 DK1.5引入了新的类型-- ...
- [Java基础]循环结构3
[Java基础]循环结构3 break 与 continue 中断循环... /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:BreakTest.java 编写时间:2016/6 ...
- [java基础]循环结构2
[java基础]循环结构2 写了几个循环结构练习~记录一下~~ 1:99乘法表 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:GameForFor.java 编写时间:2016 ...
- [java基础]循环结构1
[java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:WhileTest.j ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- VBA基础——循环语句
VBA基础之循环语句 Sub s1() Dim rg As Range For Each rg In Range("a1:b7,d5:e9") If rg = "&quo ...
- 黑马程序员:Java基础总结----枚举
黑马程序员:Java基础总结 枚举 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...
- C语言入门7-程序设计方法基础-循环结构
程序设计方法基础-循环结构 循环三要素: 初值 循环判断条件 步长(循环增量) 循环结构在有些书籍上也称为重复结构, 即反复执行某一部分的操作. 循环三要素: 初值 循环判断条件 步 ...
- Java基础之枚举类型Enum的使用
Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...
随机推荐
- ANDROID定义自己的观点——模仿瀑布布局(源代码)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简单介绍: 在自己定义view的时候,事实上非常easy,仅仅须要知道3步骤: 1.測量- ...
- WP 开发中.xaml 与.xaml.cs
关于 WP 开发中.xaml 与.xaml.cs 的关系 今天我们先来看一下在WP8.1开发中最长见到的几个文件之间的关系.比较论证,在看这个问题之前我们简单看看.NET平台其他两个不同的框架: ...
- 用批处理编译*.sln工程
原文:用批处理编译*.sln工程 批处理是直接调用Microsoft Visual Studio 8\Common7\IDE\ 目录内的 devenv.exe ,它启动后就是IDE,提供的参数如下: ...
- 解决水晶报表提示“未知的查询引擎错误” FOR VS2010
原文:解决水晶报表提示“未知的查询引擎错误” FOR VS2010 在VS2010环境下运行水晶报表(当然要先装上Crystal Report For VS2010), 在SetDataSource方 ...
- [android] 百度地图开发 (两).所在地的城市定位和城市POI搜索
一个. 百度地图城市位置和POI搜索知识 上一篇文章"百度地图开发(一)"中讲述了怎样申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述怎样定位城市位置.定 ...
- mediawiki在windows下的安装
mediawiki在windows下的安装 对于刚接触wiki的朋友们来说,配置一个服务器环境,安装并运行mediawiki是一件很麻烦的事情,在这里,我尽量用通俗易懂的语言,介绍mw(mediawi ...
- cygwin的安装使用
Cygwin 是一个用于 Windows 的类 UNIX shell 环境. 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性:以及 Bash shell 的改写 ...
- 验证编辑方法(Edit method)和编辑视图(Edit view)
ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view) 在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是 ...
- JS数量输入控件
JS数量输入控件 很早看到kissy首页 有数量输入控件,就随便看了下功能 感觉也不怎么难 所以也就试着自己也做了一个, 当然基本的功能和他们的一样,只是用了自己的编码思想来解决这么一个问题.特此给大 ...
- web代理进行跨域访问
通过web代理进行跨域访问,http请求返回超时的问题定位 [现象] 在ajax通过web代理跨域访问时,http第一次登陆时正常,但是第二次再下发其他命令的时候总是返回 java.net.Soc ...