运算符用于变量之间的运算和操作。C#主要包括算术运算符、字符串运算符、赋值运算符、逻辑运算符、位运算符以及其他运算符等。本节将分别介绍这些运算符的用法。
算术运算符中最容易理解的是数学中常见的运算符“+”、“-”、“*”和“/”。此类运算符在C#算术运算中的作用和数学中运算符的作用相似,用法也基本相同。下面直接通过一个实例介绍这类运算符的用法。
创建一个Windows控制台应用程序,演示C#中四则运算符的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Operator1”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义两个操作数
int a = 16;
int b = 4;
//使用算术运算符进行运算,并输出运算的结果
Console.WriteLine("a + b = {0}", a + b);
Console.WriteLine("a - b = {0}", a - b);
Console.WriteLine("a * b = {0}", a * b);
Console.WriteLine("a / b = {0}", a / b);
}
按Ctrl+F5组合键运行程序,运行结果如图2-13所示。
图2-13 运行结果
代码中使用简单的算术运算符对整数16和4进行了四则运算,并输出了结果。算术运算符中一类比较特殊的运算符是自增运算符和自减运算符,表现形式为“++”和“--”。假设存在变量x,则++x表示x在其原值基础上增加1,而--x则表示x在其原值基础上减少1。
下面通过一个实例演示自增运算符和自减运算符的用法。
创建一个Windows控制台应用程序,演示C#中自增运算符和自减运算符的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Operator2”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义两个变量用自增运算符和自减运算符的演示
int x = 10;
int y = 20;
//分别输出x++和y--的值
Console.WriteLine("++x等于:{0}", ++x);
Console.WriteLine("--y等于:{0}", --y);
}
按Ctrl+F5组合键运行程序,运行结果如图2-14所示。
图2-14 运行结果
代码中使用自增运算符和自减运算符对变量x和y进行了自增和自减操作,并输出结果。从实际的结果来看自增运算符相当于执行了x= x + 1,而自减运算符相当于执行了x= x–1。
C#中存在一个字符串运算符,其形式与四则运算中的加号相同,即为“+”。在字符串运算中表示连接,即连接两个字符串。下面以一个实例说明字符串运算符的用法。
创建一个Windows控制台应用程序,演示C#中字符串运算符的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Operator3”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义两个字符串
string x = "你好:";
string y = "王先生!";
//使用字符串运算符连接两个字符串
string z = x + y;
//输出结果
Console.WriteLine(z);
}
按Ctrl+F5组合键运行程序,运行结果如图2-15所示。
图2-15 运行结果
代码中字符串x的值为“你好:”,而字符串y的值为“王先生!”。经过字符串运算符的连接后,字符串z的值为“你好:王先生!”。
赋值运算符用来为变量赋值,在前文的介绍中已经使用赋值运算符。最简单的赋值运算符是“=”。使用等号可以将值赋予相应的变量,在后面的代码中即可使用变量表示该值。在使用赋值运算符时,一定要注意其符号“=”与数学运算中等号的意义不同。在C#中,“=”为赋值运算符,不表示相等的含义。
除了自增运算符和自减运算符,C#中还有一些类似的简化赋值运算符写法,如表2-5所示。
表2-5 简化赋值运算符列表
简化运算符写法 |
等价算术表达式 |
简化运算符写法 |
等价算术表达式 |
x++,++x |
x=x+1 |
x-=y |
x=x-y |
x--,--x |
x=x-1 |
x*=y |
x=x*y |
x+=y |
x=x+y |
x/=y |
x=x/y |
使用简化赋值运算符可以简化代码的书写。下面介绍一个实例,演示简化运算符的用法。
创建一个Windows控制台应用程序,演示C#中简化运算符的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Operator4”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义用于操作的两个整型变量x和y
int x = 10;
int y = 5;
//演示+=的用法
x += y;
Console.WriteLine(x);
//演示-=的用法
x = 10;
x -= y;
Console.WriteLine(x);
//演示*=的用法
x = 10;
x *= y;
Console.WriteLine(x);
//演示/=的用法
x = 10;
x /= y;
Console.WriteLine(x);
}
按Ctrl+F5组合键运行程序,运行结果如图2-16所示。按任意键可退出程序。
图2-16 运行结果
代码中字符串x的值为10,而字符串y的值为5。其采用4种简化运算符操作时结果分别等同于将x和y做四则运算,其结果为10+5,10-5,10*5以及10/5四个表达式的结果。
逻辑运算符针对的是布尔变量,布尔变量由关键字bool说明,即true(真、是)和false(假、非)。逻辑变量本身也是变量的一种,但是逻辑变量只能表示true和false,与其他变量不同。
声明布尔类型变量的语句如下:
bool x = true;
bool y = false;
首先,介绍逻辑运算符中的逻辑与运算符,用“&”表示,该运算的规则如表2-6所示。
表2-6 逻辑与运算符规则
运 算 |
结 果 |
运 算 |
结 果 |
true & false |
false |
false & true |
false |
true & true |
true |
false & false |
false |
除了逻辑与运算符以外,逻辑或运算符也是一种常见的运算符,其运算规则如表2-7所示。
表2-7 逻辑或运算符规则
运 算 |
结 果 |
运 算 |
结 果 |
true & false |
true |
false & true |
true |
true & true |
true |
false & false |
false |
表2-8列出了逻辑异或运算符的运算规则。
表2-8 逻辑异或运算符规则
运 算 |
结 果 |
运 算 |
结 果 |
true ^ false |
true |
false ^ true |
true |
true ^ true |
false |
false ^ false |
false |
逻辑非运算符即取反操作,其运算规则如表2-9所示。
表2-9 逻辑非运算符规则
运 算 |
结 果 |
运 算 |
结 果 |
! false |
true |
! true |
false |
创建一个Windows控制台应用程序,演示C#中逻辑运算符的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Operator5”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义bool型变量分别为true和false
bool x = true;
bool y = false;
//对true与false之间逻辑与运算进行计算和输出
//计算true & false
Console.WriteLine("True & False is {0}", (x & y));
//计算true & true
Console.WriteLine("True & True is {0}", (x & x));
//计算false & true
Console.WriteLine("False & True is {0}", (y & x));
//计算false & false
Console.WriteLine("False & False is {0}", (y & y));
//对true与false之间逻辑或运算进行计算和输出
//计算true | false
Console.WriteLine("True | False is {0}", (x | y));
//计算true | true
Console.WriteLine("True | True is {0}", (x | x));
//计算false | true
Console.WriteLine("False | True is {0}", (y | x));
//计算false | false
Console.WriteLine("False | False is {0}", (y | y));
//对true与false之间逻辑异或运算进行计算和输出
//计算true ^ false
Console.WriteLine("True ^ False is {0}", (x ^ y));
//计算true ^ true
Console.WriteLine("True ^ True is {0}", (x ^ x));
//计算false ^ true
Console.WriteLine("False ^ True is {0}", (y ^ x));
//计算false ^ false
Console.WriteLine("False ^ False is {0}", (y ^ y));
//对true与false进行逻辑非运算和输出
Console.WriteLine("!False is {0}", (!y));
Console.WriteLine("!True is {0}", (!x));
}
按Ctrl+F5组合键运行程序,运行结果如图2-17所示。按任意键可退出程序。
图2-17 运行结果
代码中涉及了介绍的4种逻辑运算符的运算规则,具体的计算方法可查阅表2-6至表2-9。
比较运算符也是一类常见的逻辑运算符。它主要用于数值的比较,也可以用于判定该表达式为真或假,如4>3为真,而3>4为假。比较运算符列表如表2-10所示。
表2-10 比较运算符列表
比较运算符 |
用 途 |
比较运算符 |
用 途 |
== |
等于 |
> |
大于 |
!= |
不等于 |
<= |
小于等于 |
< |
小于 |
>= |
大于等于 |
其中,在数学中表示相等的等号在C#中用“==”代替,在使用时要尤其注意。
创建一个Windows控制台应用程序,演示C#中比较运算符的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Operator6”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//判断3是否等于5
Console.WriteLine("3 == 5 is: {0}", 3 == 5);
//判断3是否不等于5
Console.WriteLine("3 != 5 is: {0}", 3 != 5);
//判断3是否小于5
Console.WriteLine("3 < 5 is: {0}", 3 < 5);
//判断3是否大于5
Console.WriteLine("3 > 5 is: {0}", 3 > 5);
//判断3是否小于等于5
Console.WriteLine("3 <= 5 is: {0}", 3 <= 5);
//判断3是否大于等于5
Console.WriteLine("3 >= 5 is: {0}", 3 >= 5);
}
按Ctrl+F5组合键运行程序,运行结果如图2-18所示。
图2-18 运行结果
代码中演示了常见比较运算符的用法,参与运算的两个数字为3和5,结果非常明确。
使用运算符进行运算时,运算符的优先级是不同的,如计算表达式2+3*4时,结果显然应该为14而不是20。C#中为运算符定义了运算优先级规则,如表2-11所示。
表2-11 运算优先级规则
优 先 级 |
运 算 符 |
优先级从高到低 |
++,--(后缀),+,-,!,~ |
++,--(前缀) | |
*,/,% | |
+,- | |
<<,>> | |
<,>,<=,>= | |
==,!= | |
& | |
^ | |
| | |
&& | |
|| | |
=,*=,/=,%=,+=,-= |
在编写程序时应尽量使用括号以增加程序的可读性。