程序操作使用语句进行表示。 C# 支持几种不同的语句,其中许多语句是从嵌入语句的角度来定义的。

使用代码块,可以在允许编写一个语句的上下文中编写多个语句。 代码块是由一系列在分隔符 { 和 } 内编写的语句组成。

声明语句用于声明局部变量和常量。

1.表达式语句用于计算表达式。 可用作语句的表达式包括方法调用、使用 new 运算符的对象分配、使用 = 和复合赋值运算符的赋值、使用 ++ 和 -- 运算符和 await 表达式的递增和递减运算。

2.选择语句用于根据一些表达式的值从多个可能的语句中选择一个以供执行。 这一类语句包括 if 和 switch 语句。

3.迭代语句用于重复执行嵌入语句。 这一类语句包括 whiledofor 和 foreach 语句。

4.跳转语句用于转移控制权。 这一类语句包括 breakcontinuegotothrowreturn 和 yield 语句。

5.try...catch 语句用于捕获在代码块执行期间发生的异常,try...finally 语句用于指定始终执行的最终代码,无论异常发生与否

6.checked 和 unchecked 语句用于控制整型类型算术运算和转换的溢出检查上下文。

7.lock 语句用于获取给定对象的相互排斥锁定,执行语句,然后解除锁定。

8.using 语句用于获取资源,执行语句,然后释放资源。

下面列出了可以使用的各种语句,以及每种语句的示例。

  • 局部变量声明:
C#复制
static void Declarations(string[] args) { int a; int b = 2, c = 3; a = 1; Console.WriteLine(a + b + c); } 
  • 局部常量声明:
C#复制
static void ConstantDeclarations(string[] args) { const float pi = 3.1415927f; const int r = 25; Console.WriteLine(pi * r * r); } 
  • 表达式语句:
C#复制
static void Expressions(string[] args) { int i; i = 123; // Expression statement Console.WriteLine(i); // Expression statement i++; // Expression statement Console.WriteLine(i); // Expression statement } 
  • if 语句:
C#复制
static void IfStatement(string[] args) { if (args.Length == 0) { Console.WriteLine("No arguments"); } else { Console.WriteLine("One or more arguments"); } } 
  • switch 语句:
C#复制
static void SwitchStatement(string[] args) { int n = args.Length; switch (n) { case 0: Console.WriteLine("No arguments"); break; case 1: Console.WriteLine("One argument"); break; default: Console.WriteLine($"{n} arguments"); break; } } 
  • while 语句:
C#复制
static void WhileStatement(string[] args) { int i = 0; while (i < args.Length) { Console.WriteLine(args[i]); i++; } } 
  • do 语句:
C#复制
static void DoStatement(string[] args) { string s; do { s = Console.ReadLine(); Console.WriteLine(s); } while (!string.IsNullOrEmpty(s)); } 
  • for 语句:
C#复制
static void ForStatement(string[] args) { for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); } } 
  • foreach 语句:
C#复制
static void ForEachStatement(string[] args) { foreach (string s in args) { Console.WriteLine(s); } } 
  • break 语句:
C#复制
static void BreakStatement(string[] args) { while (true) { string s = Console.ReadLine(); if (string.IsNullOrEmpty(s)) break; Console.WriteLine(s); } } 
  • continue 语句:
C#复制
static void ContinueStatement(string[] args) { for (int i = 0; i < args.Length; i++) { if (args[i].StartsWith("/")) continue; Console.WriteLine(args[i]); } } 
  • goto 语句:
C#复制
static void GoToStatement(string[] args) { int i = 0; goto check; loop: Console.WriteLine(args[i++]); check: if (i < args.Length) goto loop; } 
  • return 语句:
C#复制
static int Add(int a, int b) { return a + b; } static void ReturnStatement(string[] args) { Console.WriteLine(Add(1, 2)); return; } 
  • yield 语句:
C#复制
static IEnumerable<int> Range(int from, int to) { for (int i = from; i < to; i++) { yield return i; } yield break; } static void YieldStatement(string[] args) { foreach (int i in Range(-10,10)) { Console.WriteLine(i); } } 
  • throw 和 try 语句:
C#复制
static double Divide(double x, double y) { if (y == 0) throw new DivideByZeroException(); return x / y; } static void TryCatch(string[] args) { try { if (args.Length != 2) { throw new InvalidOperationException("Two numbers required"); } double x = double.Parse(args[0]); double y = double.Parse(args[1]); Console.WriteLine(Divide(x, y)); } catch (InvalidOperationException e) { Console.WriteLine(e.Message); } finally { Console.WriteLine("Good bye!"); } } 
  • checked 和 unchecked 语句:
C#复制
static void CheckedUnchecked(string[] args) { int x = int.MaxValue; unchecked { Console.WriteLine(x + 1); // Overflow } checked { Console.WriteLine(x + 1); // Exception } } 
  • lock 语句:
C#复制
class Account
{decimal balance;private readonly object sync = new object(); public void Withdraw(decimal amount) { lock (sync) { if (amount > balance) { throw new Exception( "Insufficient funds"); } balance -= amount; } } } 
  • using 语句:
C#复制
static void UsingStatement(string[] args) { using (TextWriter w = File.CreateText("test.txt")) { w.WriteLine("Line one"); w.WriteLine("Line two"); w.WriteLine("Line three"); } } 

转载于:https://www.cnblogs.com/lzfsuifeng/p/9109192.html

C#指南,重温基础,展望远方!(5)C#语句相关推荐

  1. 【重温基础】7.时间对象

    本文是 重温基础 系列文章的第七篇. 今日感受:做好自律. 系列目录: [复习资料]ES6/ES7/ES8/ES9资料整理(个人整理) [重温基础]1.语法和数据类型 [重温基础]2.流程控制和错误处 ...

  2. 【重温基础】2.流程控制和错误处理

    本文是 重温基础 系列文章的第二篇,需要让自己静下心来,学习,养成好习惯. 系列目录: [复习资料]ES6/ES7/ES8/ES9资料整理(个人整理) [重温基础]1.语法和数据类型 本章节复习的是J ...

  3. 批量生成数组_JavaScript【重温基础】13.迭代器和生成器

    本文是 重温基础 系列文章的第十三篇. 今日感受:每次自我年终总结,都会有各种情绪和收获. 本章节复习的是JS中的迭代器和生成器,常常用来处理集合. 前置知识: JavaScrip已经提供多个迭代集合 ...

  4. Spark性能优化指南:基础篇

    前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作 ...

  5. chrome调试工具高级不完整使用指南(基础篇)

    一.前言 本文记录的是作者在工作上面对chrome的一些使用和情况的分析分享,内容仅代表个人的观点.转发请注明出处(http://www.cnblogs.com/st-leslie/),谢谢合作 二. ...

  6. 【重温基础】6.数字

    本文是 重温基础 系列文章的第六篇. 今日感受:自己需要多总结,会有不同收获(比如今晚我做的转正总结). 系列目录: [复习资料]ES6/ES7/ES8/ES9资料整理(个人整理) [重温基础]1.语 ...

  7. Python编程基础:第八节 判断语句If Statements

    第八节 判断语句If Statements 前言 实践 前言 有了基本的数据类型处理知识,我们便可以编写一些简单的程序.在编程过程中,我们往往需要对一些条件加以判断,若满足其条件,则执行下面对应的代码 ...

  8. python的def语句_【零基础学Python】def语句,参数和None值

    像之前的print().input()和len()功能,Python提供了一些类似的内置函数,另外也可以自己编写自定义函数. 示例: def hello(): print('Howdy!') prin ...

  9. c语言用if语句abc输出最大值,C语言基础入门选择结构-if语句(78页)-原创力文档...

    C语言基础入门选择结构-if语句_电脑基础知识_IT/计算机_专业资料.第9单元选择结构-if语句<程序设计基础>北京八维研修学院第1节选择结构导入?... <程序设计基础> ...

  10. python 循环语句结果存储_【零基础学Python】循环语句

    while循环语句 可以使用while语句一遍又一遍的执行代码块.只要while语句的条件为True,子句的代码就会执行下去.在代码中,一条while语句始终包含以下内容: while关键字 条件(即 ...

最新文章

  1. (转载)浅析Hadoop文件格式
  2. linux重定向进程输出到文件删除,Linux文件编辑器vim输出输入重定向、管道以及进程(示例代码)...
  3. 虚拟机ubuntu19.04下设置idea快捷键
  4. 让网站性能最佳的34条黄金守则
  5. Linux---有关dig命令的有用脚本
  6. 辽宁省计算机专业A类,辽宁省中职升高职招生考试计算机及应用专业综合课试卷(共2份)...
  7. 为什么你设计的网页没有品质感?
  8. 书籍推荐:《LInux就该这么学》
  9. 分布式-图片上传到Lgnix
  10. java过滤集合,java – 如何通过交集过滤集合集合?
  11. 学用ASP.NET2.0
  12. pe_xscan做了几个改动
  13. 前端安全——XSS攻击与防御原理详解
  14. html ua ios,iOS 修改默认 UserAgent
  15. socket中pack 和 unpack 的使用
  16. java se1.6配套Jdk,javase 1.6与jdk1.6
  17. 妹子尚且如此! 少年努力吧
  18. binwalk有MySQL_linux – 使用binwalk提取所有文件
  19. QtAV视频播放器的介绍、编译以及简单使用
  20. C++中的assign函数用法

热门文章

  1. 电脑右下,电脑右下图标怎么显示出来怎么办
  2. redis desktop manager 集群_Redis Manager(2.0) —— Redis 运维利器
  3. python3怎么安装mysql_Python3.7安装mysqlclient
  4. 突破封锁的浏览器_零的突破!重庆第一台全国产电脑到底长什么样?
  5. 用计算机算3次根号0.00005,数值分析复习题13
  6. 人脸对齐(十三)--3DDFA
  7. jenkins教程_4 Docker+SpringCloud
  8. javascript 中的prompt 用法
  9. 微服务实现不同登陆_PaaS与IaaS在微服务架构实现方面的6大不同
  10. python md5加密解密_Python使用MD5加密算法对字符串进行加密操作示例