理解C#系列 / 核心C# / 判断&循环&跳转
判断&循环&跳转
说明
本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思。
判断
很容易理解:如果……就……
if语句:测试特定条件是否满足,如果满足就执行某些代码,如果不满足就执行else中的代码。
int i=;
if(i==)
{
i=;
}
else
{
i=;
}
程序很简单,建立整数变量,初始化为0,经过一个判断{如果满足条件: i 等于 0,那么对 i 赋值 1,若不满足条件,即 i 不等于0 时,对 i 赋值 0}。
(x==y),两个等于号表示判断等号两边的值是否相等,判断结果是布尔值true或false。而一个等于号是赋值操作,这里是新手常犯错误的地方。
switch语句:拿一个变量和多个值比较,和哪个值相等,就执行这个值相对应的执行代码。
我基本没用过switch语句,因为几乎可以用if做到switch能做到的所有事情。
如果使用的话,须注意每个case用break结尾,并且可以使用default实现else的效果。
循环
for循环
for(第一次循环开始前执行的代码;条件语句-如果满足才执行下一次循环;每一次循环结束后执行的代码){循环体}
for是功能最强大的循环语句,几乎可以用它做到其他循环语句能做到的所有事,只是某些时候,用其他循环语句比较简单方便,接下来介绍某些时候是哪些时候。
while循环
while(条件语句-如果满足才执行下一次循环){循环体}。
while(true)//无限循环
{
if(表达式)//如果满足某个条件
{
break;//跳出循环
}
}
break语句是跳转语句的一种,提前介绍了,用于跳出循环,也就是结束该循环。
do...while循环
do{循环体}while(条件语句-如果满足才执行下一次循环)。
如此和while不同的是:不管如何,先执行一边循环体里的内容,再考虑循环的事。
foreach循环
foreach(变量类型 变量名 in 集合){循环体}
设置一个临时的变量,用于访问集合中的每一个个体,集合中有多少对象,就循环几次。
在循环体中可以通过此临时变量来使用此次循环中集合对应的个体,能访问,能调用其方法,修改其属性,但是不能修改临时变量,即不能对临时变量赋值。
跳转语句
break语句
在之前也介绍过,用于跳出循环。除此之外,break还可以在switch语句中用于退出某个case语句。
如果break放在switch语句或循环外部,就会产生编译错误。
continue语句
在循环体中使用,用于结束本回合循环,直接开始下一次循环。和break语句一样,通常是和if语句一起使用的。
continue语句执行后,还是会执行for循环的(每一次循环结束后执行的代码)。
return语句
return用于退出类的方法,把控制权返回给方法的调用者。
如果方法返回类型为void(表示不需要返回值),那么直接使用return返回,否则return语句必须返回这个类型的值,如果返回类型是引用类型,允许返回空值(null)。
goto语句
大多数人从未使用过……因为goto语句导致运行流程太混乱了……
理解C#系列 / 核心C# / 判断&循环&跳转的更多相关文章
- 理解C#系列 / 核心C# / 数据类型
数据类型 数据类型 C#把数据类型分为两种:值类型和引用类型. 值类型和引用类型 值类型的变量直接指向存储的值,引用类型的变量指向值的引用.[理解:引用就像一个柜子的号码牌,可以顺藤摸瓜找到柜子.假如 ...
- 理解C#系列 / 核心C# / 常量
常量 常量? 我对常量的理解就是在初始化完成后再也不变的“全局变量”. 定义常量 [const][空格][变量类型][空格][变量名称][=][值][:] const表示定义的是常量. 常量特点 常量 ...
- 理解C#系列 / 核心C# / 编译参数
编译参数 编译控制台应用程序 csc 源文件.cs 编译Windows应用程序 csc /t:winexe 源文件.cs 编译类库应用程序 csc /t:libray 源文件.cs 编译引用类库的应用 ...
- 理解C#系列 / 核心C# / 名称空间
名称空间namespace 名称空间 名称空间用来逻辑分类,而不是物理上的,名称空间与程序集无关[程序集:经由编译器编译得到的文件],同一个程序集中可以有2不同的名称空间,也可以在不同的程序集中定义同 ...
- 理解C#系列 / 核心C# / 枚举
枚举 如果没有枚举 //1代表s号:2代表m号:3代表l号:4代表XL号:5代表XXL号 ; ){ //快递发M号的衣服 } 有了枚举之后 声明枚举(请原谅我使用了中文汉字) public enum ...
- 理解C#系列 / 核心C# / 变量
变量 变量? 变量是对一个东西指定一个名称,变量的功能和人的名字差不多,提到名字就知道指的是什么. 变量类型? 变量类型说明了变量的类型,声明变量是一个整数,还是小数,还是字符,或是图像,或是人类,或 ...
- 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)
本篇是ECMA-262-3 in detail系列的一个概述(本人后续会翻译整理这些文章到本系列(第11-19章).每个章节都有一个更详细的内容链接,你可以继续读一下每个章节对应的详细内容链接进行更深 ...
- 深入理解javascript系列(4):立即调用的函数表达式
本文来自汤姆大叔 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行. 在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法 ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...
随机推荐
- 看来是要改用Gecko的节奏,放弃Awesomium吧
Gecko的对象模型很像微软自带的WebBrowser,Awesomium实在太难啃.
- 【JavaScript】AJAX教程
AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML). AJAX是与服务器交换数据并更新部分网页的技术,在不重新加载整个页面的情况下. ...
- [Angular2 Router] Programmatic Router Navigation via the Router API - Relative And Absolute Router Navigation
In this tutorial we are going to learn how to navigate programmatically (or imperatively) by using t ...
- Android短信监听软件
本案例是在android手机中运行,是一个没有界面的短信监听软件.主要是用BroadcastReceiver来接受短信广播,当接收到短信后就跳转到service中来转发短信.哈哈,不是用来干坏事的.这 ...
- 关于Android LayoutInflater的解释
LayoutInflater的作用就是动态加载xml布局好的界面,类似于findViewById()来获取已经定义好的控件一样.不同点是LayoutInflater是用来找res/layout/下的x ...
- C++ Traits技术
要想深入的理解STL的迭代器.分配器等,就必须了解C++模板编程中的一个技巧——Traits. 1.问题的提出 C++的模板特性为泛型编程提供了支持.这样我们就可以编写更加通用的代码,而不必过分去关心 ...
- IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
一.案例演示 最近在整理一个聊天的项目的时候,发送图片的时候,会有一个三角的指向效果,指向这张图片的发送者.服务端返回给我们的图片只是一张矩形的图片,我们如何把一张矩形的图片或者View,加上一层自定 ...
- Android(java)学习笔记63:线程的优先级
1. Java线程的优先级从1到10级别,值越大优先级越高线程默认优先级是5.值越大优先级越高 (1) 继承自Thread类创建线程类: package cn.itcast_04; public cl ...
- JavaScript中交换两个变量的值得三种做法(代码实现)
javascript在编程时经常会涉及到如何交换两个变量的值,例如常见的冒泡排序,快速排序等:下面我讲根据自己近期所学总结几种常见的交换两个变量值的方法: 方法一:借助第三方变量交换两个变量的值 va ...
- Java IO 技术之基本流类
流式IO 流(Stream)是字节的源或目的. 两种基本的流是:输入流(Input Stream)和输出流(Output Stream).可从中读出一系列字节的对象称为输入流.而能向其 ...