gkket 发表于 2021-5-10 20:04:47

C#变量的定义和使用

变量(Variable)是 C# 编程中不可缺失的内容,使用变量可以更容易地完成程序的编写。

变量可以理解为存放数据的容器,并且在将值存放到变量中时还要为变量指定数据类型。

变量和常量是相对的:变量是指所存放的值是允许改变的,而常量表示存入的值不允许改变。

本节我们先讲解 C# 变量的定义和使用,下节《C#常量》再继续讲解常量。
C#变量的定义在定义变量时,首先要确认在变量中存放的值的数据类型,然后再确定变量的内容,最后根据 C# 变量命名规则定义好变量名。

定义变量的语法如下。
数据类型变量名;例如定义一个存放整数的变量,可以定义成:int num;在定义变量后如何为变量赋值呢?很简单,直接使用=来连接要在变量中存放的值即可。C#变量的赋值赋值的语法有两种方式,一种是在定义变量的同时直接赋值,一种是先定义变量然后再赋值,它们的格式如下。

在定义变量的同时赋值:
数据类型变量名 = 值;先定义变量然后再赋值:
数据类型变量名;
变量名 = 值;在定义变量时需要注意变量中的值要与变量的数据类型相兼容。另外,在为变量赋值时也可以一次为多个变量赋值。例如:

[*]int a = 1, b = 2;


虽然一次为多个变量赋值方便了很多,但在实际编程中为了增强程序的可读性,建议读者在编程中每次声明一个变量并为一个变量赋值。C#变量使用举例【实例1】分别定义整型、浮点型、布尔型以及字符串类型的变量并赋值,最后将变量值输出。

[*]class Program
[*]{
[*]    static void Main(string[] args)
[*]    {
[*]      int num1 = 100;
[*]      double num2 = 100.123;
[*]      bool isFlag = true;
[*]      String name = "Hello";
[*]
[*]      Console.WriteLine("num1= "+ num1);
[*]      Console.WriteLine("num2=" + num2);
[*]      Console.WriteLine("isFlag=" + isFlag);
[*]      Console.WriteLine("name=" + name);
[*]    }
[*]}


执行上面代码,效果如下图。

http://c.biancheng.net/uploads/allimg/190314/4-1Z3141A614a1.png

【实例 2】定义两个变量来存放值,然后将其中的大数加 10 后输出。

根据题目要求,在前面的实例中已经使用三元运算符完成了具体值的判断,下面使用定义变量的方式来实现。代码如下。

[*]class Program
[*]{
[*]    static void Main(string[] args)
[*]    {
[*]      int a = 10;
[*]      int b = 20;
[*]      Console.WriteLine("将a与b中较大的数加10后结果为:"+(a > b ? a + 10 : b + 10));
[*]    }
[*]}


执行上面的代码,效果如下图。

http://c.biancheng.net/uploads/allimg/190314/4-1Z3141AG5403.png

从上面的执行效果可以看出,由于 b 大于 a,原来 b 的值为 20,再加 10,则结果为 30。

【实例 3】定义两个变量,并将两个变量的值交换后输出。

根据题目要求,由于要交换两个变量中存放的值,最简单的方法是定义一个中间变量来存放交换的值,就像交换两个容器中存放的水需要借着第 3 个容器才能完成。代码如下。

[*]class Program
[*]{
[*]    static void Main(string[] args)
[*]    {
[*]      int a = 100;
[*]      int b = 200;
[*]      Console.WriteLine("交换前:");
[*]      Console.WriteLine("a=" + a + ";b=" + b);
[*]      int temp;
[*]      temp = a;
[*]      a = b;
[*]      b = temp;
[*]      Console.WriteLine("交换后:");
[*]      Console.WriteLine("a=" + a + ";b=" + b);
[*]    }
[*]}


执行上面的代码,效果如下图。

http://c.biancheng.net/uploads/allimg/190314/4-1Z3141AK52W.png

除了使用中间变量完成两个变量的值的交换以外,这里提供两种常用的方式供读者参考。

第 1 种方式是通过“加和再减”的方式实现,代码如下。
纯文本复制

[*]class Program
[*]{
[*]    static void Main(string[] args)
[*]    {
[*]      int a = 100;
[*]      int b = 200;
[*]      a = a + b;
[*]      b = a - b;
[*]      a = a - b;
[*]      Console.WriteLine("交换后的值:");
[*]      Console.WriteLine("a=" + a + ";b=" + b);
[*]    }
[*]}


执行上面的代码,即可完成与使用中间变量交换值同样的效果。

第 2 种方式则是使用位运算实现。在位运算符中选择的是异或运算符,异或运算是将计算的值转换成二进制,然后两个值之间的比较原则是相同为 0、不同为 1,因此经过一次异或操作会将数据的某些位翻转,但是同一个数如果用 2 次异或操作则数值保持不变。代 码如下。

[*]class Program
[*]{
[*]    static void Main(string[] args)
[*]    {
[*]      int a = 100;
[*]      int b = 200;
[*]      a = a ^ b;
[*]      b = a ^ b;
[*]      a = a ^ b;
[*]      Console.WriteLine("交换后的值:");
[*]      Console.WriteLine("a=" + a + ";b=" + b);
[*]    }
[*]}


执行上面的代码,交换的效果也是一样的。有兴趣的读者可以将 100 和 200 转换成二进制的值进行相应的计算,再查看效果。

zhulong 发表于 2021-5-10 20:04:49

楼主您的技术水准,我最服你,其他都是浮云

差得多先森 发表于 2021-5-12 00:36:16

论坛有你更精彩!

125 发表于 2025-11-14 13:14:18

哈哈哈哈笑不活,楼主这脑洞绝了!

老表 发表于 2025-11-14 13:28:00

蹲个后续,楼主记得更新呀,在线等挺急的~

fhgf 发表于 2025-11-14 14:24:03

谁懂啊!这内容我能循环看十遍

国微 发表于 2025-11-14 14:33:25

这波反向操作,我属实没想到!

绿树银花 发表于 2025-11-14 14:35:14

画面感太强了,仿佛身临其境!

cdjszdh 发表于 2025-11-14 14:38:25

占个楼慢慢看,先马克一下
楼主辛苦啦,期待下一篇分享

碧宇藏龙 发表于 2025-11-14 14:38:49

原来还有这种操作,长见识了!
页: [1] 2
查看完整版本: C#变量的定义和使用