第二章 变量、运算符和表达式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符
• 字符包括英文字母、中文汉字、各类特 殊字符、数字符号等等。 • C#中用单引号标记字符 • 比如’f‟, ‟#‟, ‟8‟等 其中’8‟只是用来显示8这个符号,不是 一个可以用于计算的数字。
字符变量和字符串变量声明
• 字符变量
char c; c = „f‟;
• 字符串变量
string s; s = "fine";
28位
金融货币
从上表可以看出,decimal的有效位数很大,达到了28位,但是表示的 数据范围却比float和double类型小。decimal类型并不是C#中的基础 类型,所以使用的时候会对计算时的性能有影响。
Decimal数据类型可以在Visual Studio编辑器中使用,只要在一个浮点类 型的值后加一个大写或小写的M,则编辑器会认为这个浮点类型的值是一个 Decimal类型。这种128位高精度十进制数表示法通常用在财务计算中。要 注意的是,在.NET环境中,计算该类型的值会有性能上的损失,因为它不 是基本类型。
标准ASCII码表(部分)
ASCII值 0 1 2 3 4 控制字符 NUT SOH STX ETX EOT ASCII值 32 33 34 35 36 控制字符 (space) ! ” # $ ASCII值 64 65 66 67 68 控制字符 @ A B C D ASCII值 96 97 98 99 100 控制字符 、 a b c d
long型
• 某些情况下int型变量取值范围不够用 • long型占用8个字节,最高位表示正负 号,后面的63位表示数值大小,范围可 达到-263~263-1,即 -9223372036854775808~ 9223372036854775807。
无符号型
• 在计数、年龄统计等情况下,不需要负 数 • 使用uint型变量(u是unsigned的缩写, 无符号的),32位全部用来表示正整数, 范围是0~232-1。相应的,有ushort和 ulong型变量。
p (有效位数)
可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。 s (小数位数) 小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数 时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效 位数而不同。 例: decimal(2,1),有效长度为2,小数位占1位。
转义字符
Console.WriteLine(“Where are you from? \n I am from Shanghai.”);
\n在这里起换行的作用。像这样控制文本格式 的特殊字符称为转义字符。
转义字符
转义字符 功能 单引号 Unicode编码 0027
\‟ \”
\\ \0 \a \b
常量
类型 int uint long ulong float double decimal 后缀 无 u或U l或 L ul或UL f或 F d或D或无 m或 M 示例 10,100,-10,-100 1u,100u,2007U 10l,100L,-888888L 200000000UL 1.0f,3.14f,1.155F 1.0,3.1415926535897D 1000.00m
74 75 76 77 78 79 80
I
J K L M N O P
105
106 107 108 109 110 111 112
i
j k l m n o p
ASCII编码
• ASCII表上的0~31分配给了控制字符, 用于控制外围设备,比如打印机; 32~126分配给可打印字符,127分配给 DELETE命令。
Unicode编码
• 多字节字符集由于各个国家和地区之间 定义的字符集编码标准不同,会产生不 兼容的问题。比如用GB2312编码的软 件,在繁体中文的环境下就会出现乱码。 • Unicode编码:世界通用的编码。为全 世界每个字符提供统一的编码,同一个 字符,不论在什么平台、什么软件上、 什么语言环境中,都有相同的编码。
变量的命名规则
• 变量的第一个字符必须是字母、下划线 或者@; • 后面的字符可以使字母、数字、下划线; • 变量不能和关键词重名(比如int、 double、float、还有以后我们要讲的if、 for等关键词); • 区分大小写(A与a是两个变量); • 命名选择有意义的名称,更容易理解。
变量的命名规则
5
6 7 8
ENQ
ACK BEL BS
37
38 39 40
%
& , (
69
70 71 72
E
F G H
101
102 103 104
e
f g h
9
10 11 12 13 14 15 16
HT
LF VT FF CR SO SI DLE
41
42 43 44 45 46 47 48
)
* + , . / 0
73
把读取的字符串赋值给变量name,然后输出。
读取字符
Int ch = Console.Read(); 从输入窗口读取一个字符,返回字符的 ASCII编码。 如:输入f,返回f的ASCII码102
读取数字
需要使用Convert.ToDouble()把字符串 转换为double型数字
double a = Convert.ToDouble(Console.ReadLine());
声明整型变量
int a;
变量类型 变量名称
• 该语句被执行时,系统会在内存中 分配一块4字节的空间,用来存储变 量a的值。整型变量的默认值为0。
赋值语句
a = 7;
• 把变量a的值设置为7(原先未赋值 时默认为0)。
*赋值运算符“=”不是“相等”的意思。并非是 比较左右两边是否相等。
赋值语句
add = a + b;
• Int型变量占用4个字节的空间,共32位。 为了表示负数,把最高位定义为符号位, 0表示正数,1表示负数,后面的31位表 示数值的大小。 • Int型的取值范围是-231~231-1,即2147483648~2147483647
short型
• 某些情况下使用int型太浪费 • short型变量占用2个字节,最高位表示 正负号,后面的15位表示数值大小,取 值是-215~215-1,即-32768~32767。
双引号
反斜杠 空 警告 退格
0022
005C 0000 0007 0008
\f
\r
换页
回车
000C
000D
转义字符
Console.WriteLine(“C:\STUDY\2010”);
由于双引号用来标记字符串,反斜杠“\” 用来标记转义字符,所以在输出的时候 要用转义字符。
Console.WriteLine(“C:\\STUDY\\2010”);
变量、运算符和表达式
上海师范大学
主讲:於 家
变量
• 变量有多种类型,比如自然数、整数、 有理数、实数等。 • C#中如何定义各种类型的变量?变量如 何运算?
整型变量
Static void Main(string[] args) { int a; //声明变量a a = 7; //为变量a赋值 int b; //声明变量b b = 2; //为变量b赋值 int add; //声明变量add add = a + b; //求变量a、b的和 //输出结果 Console.WriteLine(“{0}+{1}={2}”,a,b,add); }
字符串的输出与读取
• 输出字符串,并换行 Console.WriteLine("字符串"); • 输出字符串,不换行 Console.Write ("字符串"); • 读取字符串 Console.ReadLine ("字符串");
示例程序
Console.WriteLine(“Please input your name”); String name = Console.ReadLine(); Console.WriteLine(“Your name is ” + name);
相当于类型转换
程序示例
float x = 3.14159265358979f; double y = 3.14159265358979; Console.WriteLine("x={0}", x); Console.WriteLine("y={0}", y);
单精度有效位数是7位,有效数字被四舍五入了。
赋值语句
n = n + 100;
• 将n的增加100,然后重新赋值给n
int n; n = 100; n = 20wenku.baidu.com; n = n + 100; Console.WriteLine(“n = {0}”, n);
整型变量的类型
• int型 • short型 • long型 • 无符号型
Int型变量的取值范围
ASCII编码
• 为了方便在计算机里使用字符,在计算 机诞生之初,制定了ASCII编码 (American Standard Code for Information Interchange),即美国信 息交换标准码。标准ASCII码用7位二进 制数来表示128个字符,包括英文字母、 希腊字母、数字、常用的字符和各种控 制符。后来ASCII码扩展至256个字符。
此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...” 会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位 小数。
实数常量
• 实数常量在默认情况下是双精度的。要 把实数常量赋值给单精度常量,需要添 加后缀:小写的f或者大写的F。 • 如:125.36f、3.1415926F
@控制符
• 前缀@可以使引号里的内容原样输出, 而不理会里面的转义字符。
Console.WriteLine(@“ Where are you from? \n I am from Shanghai.”);
+运算符
• 将两个字符串用“+”运算符连接。
string strSentence = “Shanghai Normal University ”; strSentence = strSentence + “ is a famous university in Shanghai.” Console.WriteLine(strSentence);
decimal[ (p[ , s] )] and numeric[ (p[ , s] )] 固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从 - 10^38 +1 到 10^38 1。decimal 的 SQL-92 同义字是 dec 和 dec(p, s)。numeric 的功能相当於 decimal。
Unicode编码
• ASCII码可以表示256个字符,对西方的 字母语言编码已经足够了。但是对于中 国的汉字,却远远不够。 • 为解决汉字的编码问题,1981年中国制 定了GB2312编码标准,用两个字节表 示一个汉字,可以存储6万多个字符。日 文、韩文、繁体中文等文字都使用类似 的方法来构建本地字符集编码。这些字 符集都使用多个字节来表示一个字符, 因此这些编码称为多字节字符集 (Charset)。
溢出
short a; a = 32768;
实数型变量
• 实数型也称为浮点型
类型
字节数
取值范围
有效数字 备注
float
double
4
8
±1.5×1045~3.4×1038
±5.0×10324~1.7×10308
7位
15/16位
单精度实数
双精度实数
decimal 16
±1.0×1028~7.9×1028
• 例子(哪些是错误的变量名)
a g1 float chkListBox _Count 5thRoom @shnu
推荐的变量命名方式
• 变量名称第一个单词全部小写,最好用 简称来表示变量的类型,以后在用变量 的时候可以很容易的看出变量的类型。 • 如:string strName; double dblNumber;
• 把a+b的值赋给add
内存
add b a
9 2 7
输出
Console.WriteLine(“{0}+{1}={2}”,a,b,add); • {0},{1}和{2}是三个占位符,表示该处插入变 量值,{0}处插入第一个变量a的值, {1}处插 入第二个变量b的值,{2}处插入第三个变量 add的值。