《C#零基础入门之百识百例》变量常量 -- 两数交换
Posted 陈言必行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《C#零基础入门之百识百例》变量常量 -- 两数交换相关的知识,希望对你有一定的参考价值。
C#零基础入门 基础语法 -- 变量常量
前言
本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论,私信等方式找到我,我会一对一解答你的问题。
系列文章目录:
《C#零基础入门之百识百例》 目录文章传送门
一,变量
变量可以理解为存放数据的容器,并且在将值存放到变量中时还要为变量指定数据类型。
变量和常量是相对的:变量是指所存放的值是允许改变的,而常量表示存入的值不允许改变。
1.1 定义变量
C#中规定变量必须“先定义后使用”。
变量的定义语法如下:
变量类型 变量名;
例:定义一个int类型的变量,变量名为a
int a;
若程序中需要过个同类型变量,则可以使用 “,” 将变量名分隔开
语法定义如下:
变量类型 变量名1, 变量名2, ... ,变量名n;
例:定义三个int型变量,变量名分别为 a, b, c
int a, b, c;
1.2 命名规则
变量名的命名规则遵循C#中标识符的命名规则。
规则如下:
- 变量首字符必须是字母,下划线或者“@”字符;
- 其后可以是数字,字母或下划线;
- 变量名不可与预留关键字重名。
比如:变量名不能是int
,但是可以是_int
或者@int
。
1.3 使用变量
- 变量初始化
- 定义时赋值:
int num = 1;
- 使用时赋值:
int num; num = 1
- 定义时赋值:
C# 3.0之后支持使用var
关键字来定义隐式类型变量,声明隐式类型变量是必须进行初始化。
示例如下:
//声明隐式类型变量i,根据其初始化值10可推断i的真实类型为int
var i = 10;
使用示例:
class Program
{
static void Main(string[] args)
{
int num = 100;
Console.WriteLine("整数类型变量 num= "+ num);
num = 200;
Console.WriteLine("重新赋值变量 num= "+ num);
bool isOn = true;
Console.WriteLine("布尔类型变量 isOn=" + isOn);
string name = "陈言必行";
Console.WriteLine("字符串类型变量 name=" + name);
var pi = 3.14;
Console.WriteLine("隐式类型变量 pi=" + pi);
}
}
二,常量
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型。
常量可以被当作常规的变量,只是它们的值在定义后不能被修改。
2.1 const
在C#中,经常通过const
关键字和数据类型来声明常量。
声明语法如下:
const 常量类型 常量名 = 常量值;
代码示例如下:
const double PI = 3.14;
被const
关键字修饰的常量又被称为静态常量(编辑时常量):声明的常量必须在定义时赋值,经过编译后值被固定,任何在const符号常量定义之外的常量值修改都将引起编译错误;
如下图:
2.2 readonly
被readonly
修饰的常量又被成为 动态常量(运行时常量)
在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。
声明语法如下:
readonly 常量类型 常量名 = 常量值;
代码示例如下:
class Program // 类名
{
readonly int a = 1; // 声明并初始化
readonly int b;
Program() // 构造函数中初始化
{
b = 2;
}
}
2.3 拓展:两者区别
- 初始化
const:在声明时必须初始化值;
readonly:可以不初始化值,且可以延迟到构造函数。 - 解析:
const:在编译期间会被解析,并将常量的值替换成初始化的值;
readonly:延迟到运行的时候。 - 效率:
const:注重的是效率;
readonly:注重灵活。 - 内存:
const:没有内存消耗;
readonly:因为需要保存常量,所以有内存消耗。
PS:初学者只需要了解常量的概念,知道const
和readonly
的区别即可。在后续学习的过程中会慢慢加深理解,实际用过几次后就可完全掌握了。
三,例题 – 两数交换
3.1 问题描述
定义两个变量,并将两个变量的值交换后输出
3.2 题目分析
根据题目要求,由于要交换两个变量中存放的值,最简单的方法是定义一个中间变量来存放交换的值,就像交换两个容器中存放的水需要借着第 3 个容器才能完成。代码如下。
3.3 参考代码
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = 20;
Console.WriteLine("交换前:");
Console.WriteLine("a=" + a + ";b=" + b);
int temp;
temp = a;
a = b;
b = temp;
Console.WriteLine("交换后:");
Console.WriteLine("a=" + a + ";b=" + b);
}
}
3.4 不用中间值实现
不使用第三个数实现两数交换:一种是使用加减法运算的形式代码如下,还有一种是使用亦或的形式,后续学到的时候会讲解一下。
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = 20;
Console.WriteLine("交换前:");
Console.WriteLine("a=" + a + ";b=" + b);
a = a + b;
b = b - a;
a = a - b;
Console.WriteLine("交换后:");
Console.WriteLine("a=" + a + ";b=" + b);
}
}
以上是关于《C#零基础入门之百识百例》变量常量 -- 两数交换的主要内容,如果未能解决你的问题,请参考以下文章
《C#零基础入门之百识百例》位和赋值运算符 -- 2的n次幂
《C#零基础入门之百识百例》(六十二)结构体类型变量 -- 学生数据记录
《C#零基础入门之百识百例》(六十三)结构体类型数组 -- 学生数据存储
《C#零基础入门之百识百例》(二十)异常处理 -- 除数为0