C#对标识符定义有如下规定:
①标识符只能由字母、数字和下划线组成。
②标识符第一个字符必须是字母或下划线。
③标识符不能与C#中的关键字、库函数名同名。
④C#语言区分大小写。
⑤C#允许前缀@加上关键字作为标识符名称,如@using是合法的标识符名。
myVariableIsGood √
99Money ×(不能用数字来开头)
_floor √
wrox.com ×(“.“是不被允许的字符,因为它不属于上述允许的字符集合。如果想要使用wrox.com这个标识符,可以使用下划线或连字符来代替”.”,比如wrox_com或者wrox-com都可以)
short ×(与关键字同名)
@int √
在了解变量和数据类型时,首先,我们要知道什么是数据的输出和输入。
1.数据输出
①Console.WriteLine(内容):向控制台(屏幕)输出内容后换行
②Console.Write(内容):向控制台(屏幕)输出内容后不换行
2.输出语句
双引号中的内容为字符串,会照原样输出在屏幕上,若想输出表达式的值,表达式不能写在引号中,可用以下两种方式输出:
①单独用一个Write(表达式)来输出,此时表达式不加引号
②利用占位符来输出,每个占位符用{数字}表示,并将占位符放在引号中,要输出的值放在引号外
其运行结果如下图所示:
3.数据输入
①Console.ReadLine():从控制台读入一行字符,以回车结束输入。返回为字符串。
②Console.Read():从控制台读取一个字符,以回车键结束输入。如果输入的是一行字符,返回首字符的ASCII码。
③Console.ReadKey():从控制台读入一个字符或功能键,输入一个字符后自动结束输入。通常用来暂停屏幕。
如果要输入数据,通常使用Console.ReadLine()输入数据,并根据需求进行类型转换
而且,一般在输入数据前,通常用Console.WriteLine()给出输入的提示信息。
变量与常量
1.常量:在程序运行过程中始终不变的值。常量分字面常量与符合常量。
①字面常量:
32
368.78
‘A’
"Hello word"
true
false
②符合常量的定义:语法: const 数据类型 常量名(全部大写) = 数值
const double PI=3.1415926;
const int FOUE=4,FIVE=5,SIX=6;
2.变量
①在程序运行的整个过程中,其值可以变化的量称为变量。C#规定,任何变量在使用前,必须先定义,后使用。
②变量的定义:
数据类型 变量名 =数值; int money=1000;
数据类型 变量名; int money;
变量名=数值; money=1000;
数据类型 变量名1,变量名2,变量名3,......,变量名n; int money1,money2,money3;
3.初始化变量(在赋值时必须根据数据类型给变量赋值,否则产生错误。)
变量被定义后,必须进行初始化,之后才能使用改变量。这样可以防止开发人员无意中从其他程序遗留下来的内存中获取垃圾值,这一点C#强调安全性的一个具体体现
namespace VariabeTest
{
class Program
{
static void Main(string[] args)
{
int myVariable=1;
string name;
Console.WriteLine(myVariable);
Console.WriteLine(name);//变量name未赋值,系统报错
}
}
}
4.整数数据类型:
①有符号:sbyte(字节类型)、short(短整型)、int(整型)、long(长整型)
②无符号:byte(字节类型)、ushort(短整型)、uint(整型)、ulong(长整型)
5.整数可以用4种表示形式:
①二进制:由数字0和1组成的数字序列。如0110000、100001
②八进制:以0开头并且其后是由0~7之间(包括0和7)的整数组成的数字序列。如:015,047,0324
③十进制:由数字0~9之间(包括0和9)的整数组成的数字序列。如10,-19,198
④十六进制:以0x或者0X开头并且其后是由0~9、A~F(包括0和9、A和F)组成的数字序列。如0x25AF
赋值时不能超过数据类型的范围,否则会产生错误。
6.浮点数据类型:float(单精度)、double(双精度)、decimal(精度更高的小数)
double scorel=5.678;
float scorel=9.54; //编译错误
float scorel=9.54f;
decimal schoolfees=300.56m;
decimal schoolfees=300.56; //编译错误
注意:对于一个小数,其默认类型都是double类型,如果为float类型,必须在小数后面添加 F 或 f 后缀;为decimal 类型,必须在小数的后面添加M或m后缀。
7.bool数据类型:为true或false的无符号值
bool m_flag1=true; //正确
bool m_flag2=false; //正确
bool m_flag3=(9>8); //正确,(9>8)的运算结果为true
bool m_flag4=123; //错误,123不是逻辑值
bool m_flag5="abc"; //错误,"abc"不是逻辑值
8.转义字符:是一种特殊的字符,以“\”开头。
转义字符 | 意义 | Unicode编码(十六进制) |
\' | 单引号 | \u0027 |
\" | 双引号 | \u0022 |
\\ | 反斜杠 | \u005C |
\0 | 空字符(null) | \u0000 |
\a | 响铃 | \u0007 |
\b | 退格(从当前位置后退一列) | \u0008 |
\f | 换页(从当前位置移到下页的开头) | \u000C |
\n | 换行(从当前位置移到下一列的开头) | \u000A |
\r | 回车(从当前位置移到本行的开头) | \u000D |
\t | 水平制表(跳到下一个tab位置) | \u0009 |
\v | 垂直制表 | \u000B |
\x | 1到4位十六进制数表示的字符 | |
\u | 4位十六进制数表示的字符 |
9.对于变量的类型选择,可以参考以下几点:
①尽量使用int类型,因为它的运算速度最快,占用内存少。
②首先要满足范围的要求,否则即使精度够,也会发生数据溢出。
③float用于一般的科学计算。
④decimal用于金融或其他对精度要求极高的计算领域。