澳门至尊网站-首页

您的位置:澳门至尊网站 > 程序编程 > 控制程序流程,小知识点

控制程序流程,小知识点

2019-10-29 04:37

1、获取自增加标识的主键

SQL语句:

insert into table output inserted.id values(,,)

C#语句

object obj=cmd.ExecuteScalar()

ExecuteScalar()和ExecuteNoQuery()都可以做增删改操作,但是前者可以返回所要的结果,后者返回影响行数

持有调整流程语句都装有相同的基本特征:根据黄金年代组条件采取要实施的言语。那个语句分三大类,并通过其利害攸关作为张开描述。接收语句和跳转语句最周围,它们选拔的讲话都只举行贰次,而迭代语句再次施行语句。跳转语句无条件地扩充跳转,接收语句依据标准选拔要实行的口舌,而迭代语句依照法则决定实施语句多少次。

意气风发、选取语句
1.1 if语句
if语句是最主旨的抉择语句,它遵照一个布尔表明式的结果接受执行一条语句。
if语句的着力语法如下:

if ( boolean-expression )
embedded-statement

些微复杂一点的语法如下:

if(boolean-expression)
     consequence-statement
else
     alternative-statement

朝气蓬勃旦boolean-expression的结果为true,就实践consequence-statement;假使boolean-expression的结果为false,且有else部分,就推行alternative-statement。达到被执行的语句末尾后,将进行if语句后边的口舌。
被实行的讲话能够是其余有效的语句,包蕴另一条if语句。在此种情状下,这条if语句称为嵌套if语句。

ps:else语句不包容
编辑 if 语句时,一种常见的标题是 else 语句分化盟,即代码的缩进格式与实际的主宰流程不包容。为救助幸免这种难题,最佳使用大括号清楚地建议else 语句对应的 if语句。检查后生可畏多元互斥的准则时,可级联if语句,即在else部分采取另二个if语句。在此种景观下,将按梯次检查规范,直到遇见结果为true的原则。

1.2 switch语句
可将switch语句视为级联if语句的本来发展结果,其效果与级联if语句近似,但越来越精简、更加灵敏。switch语句推行与表明式值相等的价签内定的言辞列表。
switch语句的语法如下:

switch ( expression )
{
     case constant-expression     :
          statement-list
          break;

     default     :
          statement-list
          break;
}

switch语句体称为switch块,富含贰个或八个switch段。每一个switch段最少含有八个标签,标签后边是二个口舌列表。
expression的门类称为 switch语句的主宰类型(governing type),可以是 sbyte、byte、short、ushort、int、uint、long、ulong、char及其可以为null的版本,还能为string或枚举类型。expression只总括三遍。
switch段的竹签必需是常量表明式、在switch块中是唯黄金年代的且可显式地转变为操纵类型。如若switch语句的决定类型为string或可以为null的项目,就可含蓄case标签null。
ps:支配类型为string的switch语句
expression 的结果是分别抑扬顿挫写,因而仅当标签与 expression 完全相配时,才会实施相应的switch段。
若是expression的值与case标签中的常量相称,就将首先推行该标签后边的率先条语句。若无相配的case标签,且有default标签,就将施行该标签后的首先条语句;不然将奉行switch语句后边的语句。

ps:三番五次实行
差别于 C 和 C++等编制程序语言,C# switch 语句区别意一而再延续施行(fall through)switch段,即从三个switch段试行到下八个switch段。
为禁绝一连进行,C#供给具备switch段都是有不行达终点(unreachable endpoint)的口舌截止。一条那样的言语是无条件跳转语句,但最常用的是break语句。
透过禁绝连续奉行,C#撤销了C和C++程序中一种布满的错误,并使得调解swith段的逐个不会潜濡默化switch语句的作为。

ps:作用域
在switch语句中,整个switch块是四个功效域,而种种switch段不变成功效域。那意味着在 switch 段中申明变量或常量时,其成效域为任何switch块,实际不是眼下switch段。
假如要将变量或常量的成效域节制为当下 switch 段,可用大括号将该switch段的语句列表括起。

二、迭代说话
分选语句是依据表明式的值选拔语句并施行二遍,而迭代讲话(也叫循环语句)重复实践语句数十次。在循环的每一回迭代中,迭代语句都划算说明式的值。开头测验循环(top-tested loop)在推行语句前计算表明式的值,而告终测量检验循环(bottom-tested loop)在实行语句后总括表明式的值。
要提前截止循环,而不重复总结表明式的值,可使用下述跳转语句之豆蔻年华:break、goto、return和throw。continue语句直接举行下贰回迭代。

2.1 while语句
while语句属于先导测量检验循环,它不仅仅推行嵌套的话语,直到boolean-expression为false。由于每便迭代前都企图表达式的值,因而嵌套的口舌将履行零次或频仍。
while语句的语法如下:

while ( boolean-expression )
embedded-statement

如果boolean-expression为true,就将实践embedded-statement;推行实现后,将再次再次来到循环开端,同等对待新总括表明式的值。
假定 boolean-expression 为 false ,就将随之实行 while 语句前边的语句。即使boolean-expression风流倜傥开首就为false,那么embedded-statement一回也不会试行。

2.2 do语句
do语句也重新实践嵌套的话语,直到boolean-expression为false。区别于while语句,do语句属于截至测量试验循环,由此在测算boolean-expression前,embedded-statements已实行一次。那意味嵌套的言语最少会实行一遍。
do语句的语法如下:

do
embedded-statement
while ( boolean-expression );

假定boolean-expression为true,就将转到循环起来再次试行embedded-statements;否则,将跳转到do语句前边的语句处继续实行。

2.3 for语句
for语句只怕是被人误会最深的迭代语句,因为它看起来最复杂,但其大旨行为与其它迭代语句相通。它也持续试行嵌套的言语,直到内定的表明式为false。
for语句的语法如下:

for ( initializer ; condition ; iterator )
embedded-statement

for语句最常用于顺序管理数组。
导致for语句看起来很复杂的原故是它富含3个表达式,这几个表达式都以可选的。表达式之间必得用分号分隔,即便表明式省略了也必须这么。
早先化表明式可先河化三个有个别变量,也可伊始化多少个部分变量,在后风姿罗曼蒂克种境况下,必得用逗号将变量最初化语句分开。对于在开首化说明式中扬言的一些变量,其功用域为尺度、迭代器和嵌套语句。

ps:开端化表明式申明空间
可将全方位for语句视为是在有的看不到的大括号钦定义的,那对大括号为初叶化说明式定义了有的变量注脚空间。
规范(condition)必需是布尔表明式,若是轻易了它,就以为该表明式为true。
最终,迭代器(iterator)能够是单个表达式,也能够是用逗号分隔的表明式列表,那么些表明式的值日常决定于开头化表明式中扬言的有的变量。

ps:Infiniti循环
好似使用while语句也许成立Infiniti循环类似,也可采用for语句创立不断运营的轮回,方法是大约全体3个表明式:

for (     ;     ;     ;     )
{
     Console.WriteLine(“line”);
}

while语句和for语句可沟通,不过for语句更加精简。
在for语句中,产生的风浪与while语句肖似

  • 设若有初步化表达式,就进行它。要是有八个表达式,就将按梯次实行它们。伊始化表达式只在初步施行for语句时进行一遍。
  • 如若条件为true,就跳转到嵌套的言语。
  • 实行嵌套的言辞。
  • 执行迭代器语句并重新决断标准。假设条件为false,就跳转到for语句前边的语句。

2.4 foreach语句
foreach语句对数组或会集中的每种成分履行内定的语句叁次。分裂于for语句,foreach语句无法用于在集聚中丰硕或删除成分。
foreach语句的语法如下:

foreach ( type identifier in expression )
embedded-statement

如果expression的门类为数组,就将实践到IEnumberable的隐式调换;假设是会合,它还是完结了IEnumberable或IEnumberable<T>,要么提供了适当的GetEnumerator方法。
ps:迭代变量
foreach语句中的type和identifier申明了二个迭代变量,那是一个只读的局地变量,其效能域为嵌套的语句。
遍历群集中的成分时,迭代变量指向当前因素。
在富有的迭代语句中,独有 foreach 语句未有富含条件。除非有跳转语句停止循环,不然将对聚聚焦的每一种成分重复试行嵌套语句三回。对于会集清劲风流浪漫维数组,将从索引零伊始按升序遍历成分。如果expression 是多维数组,就将从最侧边的那维开始按升序遍历,并稳步移到最左侧包车型客车那维。
若是集结没有别的因素,就将不实行嵌套的语句。
如下代码展现字符串中的各样字符,各类字符占风姿罗曼蒂克行

string s = “This is a test.”;

foreach (char c in s)
{
     Console.WriteLine(c);
}

三、跳转语句
跳转语句与接受语句、迭代说话的区别之处在于,它们无条件地跳转到钦定地方—跳转语句的靶子(target)地方。
ps:goto语句
固然goto语句不时用,可是C#实在提供了,它跳转到用竹签标志的地点。goto语句还可跳转到switch语句中一定的case标签或default标签处。
goto语句的语法如下:

goto identifier;
goto case constant-expression;
goto default;

与break和continue语句同样,goto语句也将招致当前语句块中的后续语句不被实行。
刚毅建议在其余情状下都不用选拔 goto 语句,因为它相当的轻便滥用,导致代码难以驾驭和护卫。多量采取 goto 语句的代码常被称作“意大利共和国面条式”代码,因为程序流程就如一盘意国米糊。

3.1 break语句
break语句用于退出近日的switch、while、do、for或foreach语句。借使多条那样的讲话彼此嵌套,就将只退出最里面包车型地铁那条语句。

3.2 continue语句
continue语句步入近日的while、do、for或foreach语句的下二回迭代。如若多条那样的讲话相互嵌套,continue 语句将只用于最里面的话语,跳过 continue 语句和循环体末尾之间的全部语句。
continue语句导致for语句的表明式和迭代器被重新总结,通晓那一点很注重。

3.3 return语句
该语句再次回到到其所属成员的调用方。在return语句中可含蓄二个表达式,这种return语句只可以用来再次回到类型不是void的类成员中。return语句也可不含有表明式,这种return语句只可以用来再次来到类型为void的类成员中,那蕴含构造函数和终结器(finalizer)。

本文由澳门至尊网站发布于程序编程,转载请注明出处:控制程序流程,小知识点

关键词: