C#学习 - 表达式、语句

本文详细介绍了C#中的表达式和语句,包括表达式的定义、分类和复合表达式求值,以及语句的定义、声明语句、表达式语句和各类控制流语句如if、switch、while、for等。此外,还讲解了块语句、异常处理和迭代语句中的foreach遍历机制。
摘要由CSDN通过智能技术生成

表达式

定义

  • 算法逻辑的最基本单元,表达一定的算法意图
  • 是由一个或多个操作数和零个或多个操作符组成的序列
  • 表达式功能是求值,得到的结果可能是一个值、对象、方法或名称空间
  • 因为操作符有优先级,所以表达式也有优先级

分类

  1. 一个值。表达式返回的任何值都有一个数据类型(所以一般称返回值的类型就是其表达式的类型),任何能得到值的运算
  2. 一个变量。y = x;,x就是一个表达式
  3. 一个名称空间。System.Windows.Forms.Form myForm;
  4. 一个类型。var x = typeof(int32);,int32就是一个表达式
  5. 一个方法组。Console.WriteLine("Hello World");,有两个表达式,第一个是Console.WriteLine,拿到一组方法;第二个是("Hello World"),重载决策决定具体调用哪一个方法
  6. null值表达式。Form myForm = null;
  7. 匿名方法。Action act = delegate() { Console.WriteLine("Hello World") };,赋值符号后面就是一个匿名方法表达式,返回值是一个委托
  8. 属性访问。
Form myForm = new Form();
myForm.Text = "Hello World"
//访问Text属性,是一个表达式
  1. 访问某个对象的事件。
  2. 访问索引器。
List<int> intList = new List<int>() {
    1,2,3 };
int x = intList[1];//访问索引器来访问第n+1个元素
  1. Nothing。对返回值为void的方法的调用,Console.WriteLine("Hello World");,没有返回值

复合表达式求值

复合表达式就是由多个表达式串连起来的语句
注意操作符的优先级和同优先级操作符的运算方向

语句

定义

语句是命令式编程语言中最小的独立元素,语句的功能就是表达一些将被执行的动作。编程就是使用语句编写程序
只有高级语言才有语句,而低级语言(汇编语言和机器语言)只有指令。高级语言中的表达式对应低级语言中的指令,而语句就是一个或一组有明显逻辑关联的指令
程序当中语句执行的顺序叫控制流(执行流)
C#语言中的语句不仅能让程序员“顺序地”(语句的输入顺序)表达算法思想,还能通过条件判断、跳转和循环等方法控制程序的逻辑走向
语句就是陈述算法思想、控制逻辑走向、完成有意义的动作
C#中的语句由分号结尾,但由分号结尾的不一定是语句

using System;//这不是语句,而是using指令
class Tool
{
   
	public string Knife;//字段的声明,而不是语句
}

语句一定是出现在方法体中的
C#中有3大类语句:标签语句声明语句嵌入式语句

if (true)
{
   
	Console.WriteLine("Hello World");//嵌入式语句
}

嵌套在其他语句中的语句就叫做嵌入式语句

声明语句

声明语句分为局部变量声明和局部常量声明。

局部变量声明

语句构成: 局部变量的数据类型 + 局部变量声明器
局部变量声明器可以是一个声明器;
也可以是一组声明器再接一个局部变量声明器,此局部变量声明器可以是一个单独的标识符,也可以是“标识符 = 本地变量初始化器”,本地变量初始化器可以是一个值,也可以是一个数组

int x, y, z;//一组局部变量声明器接标识符
int a = 1; b = 2; c = 3;//一组局部变量声明器接“标识符 = 本地变量初始化器”

局部常量声明

const int x = 10;//此时x成为了常量

常量在声明时就需要跟上初始化器进行初始化

表达式语句

语句构成 = 语句表达式 + ;
即是可以形成语句的表达式
用于计算所给定的表达式,此表达式如果有所计算出来的值,那个值就会被丢弃

static void Main(string[] args)
{
   
	Add(1.0, 2.0);//此表达式计算出的3.0会被丢弃掉
}
static double Add(double x, double y)
{
   
	return x + y;
}

并非所有表达式都能成为语句,不允许像 x + y 和 x == 1这样只计算一个值(此值会被抛弃)的表达式作为语句

int x = 100; y = 200;
x + y;//报错,C#中此表达式不是语句

调用表达式语句

即调用方法表达式

Console.WriteLine("42");//方法调用表达式,接上分号就成了一个语句

对象创建表达式语句

即是 new 操作符构成的表达式
new 操作符会创建一个对象,而且去调用对象的构造器

new Form();//一个语句,虽然没什么作用

赋值语句

int x;//声明语句
x = 100;//赋值语句

前置后置±±

int a = 0;
a++;//后置++
a--;//后置--
++a;//前置++
--a;//前置--

await表达式

进行异步编程

块语句(简称“块”)

块(block)用于只允许使用单个语句的上下文中编写多条语句
block由一个扩在大括号内的可选的语句列表组成
语句列表是由一个或多个顺序编写的语句组成,C#中的语句都能写到块语句中,包含标签语句、声明语句、嵌入式语句

  • 块语句在任何时候都会被编译器当成一条语句
  • 编译器会认为块语句是一条完整的语句,不需要在最后加花括号
static void Main(string[] args)
{
   
	{
   
	hello: Console.WriteLine("Hello World");//标签语句
		int x = 100;//声明语句
		if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值