您的位置:首页 > 职场人生

黑马程序员--.NET笔记--C#基础:变量、转义符、数据类型

2012-12-04 11:28 357 查看
---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

第二天

2—1 复习&练习

项目名称和解决方案的关系:包含与被包含的关系。

一个解决方案里可以有多个项目à一个项目里可以包含多个文件à文件中有命名空间à命名空间里有类à类里有方法。

2—2 变量

1、计算机使用内存来存储数据。用户存储正在运行的程序数据(不准确)。

RAM:内存有个特点,断电后里面的数据丢失。

变量:变量代表着一块内存空间,我们可以通过变量名称向内存存/取数据,有变量就不需要我们记忆复杂的内存地址。

向内存申请一块内存空间的语法: 数据类型 变量名;

C#中的数据类型:

Int :整数

Double :小数

Char :字符型 只能存储一个字符,并且存储的这个字符要求用单引号引起来。

String :字符串 就是把0个或多个字符连接起来,字符串要求用双引号引起来。

Decimal : 具有更高的精度和更小的范围,这使它适合于财务和货币计算。

注意:在C#开发环境中,直接写一个小数点的数字,这个数字默认是double类型的。

在一个小数后面加一个M,就是告诉编译器,这个数字是decimal类型的。



变量声明的3种方法:

1、先声明,在赋值 int a; a= 3;

2、定义变量时,直接赋值。 Int a = 3;

3、一次声明多个同类型的变量,多个变量名称之间要用逗号分隔。最后以 ; 结束这句话。

StringzsName, lsName, wwName;

IntzsAge = 18, lsAge = 20, wwAge = 22;

变量一定要先声明,后赋值,最后使用(取值/或者调用或写这个变量名)

变量的命名规则:

1、 必须以“字母”_或@符号开头。字母包括多国语言,不能以数字开头

2、 后面可以跟任意“字母”、数字、下划线。

3、 不能存在空格

注意:

1、 你起的变量名不要与C#系统中的关键字重复。

2、 在C#中大小写是敏感的。

3、 同一个变量名不允许重复定义(先这个认为,但是不严谨)

定义变量时,变量名要有意义.

C#变量名编码规范——Camel命名法:

首个单词的首字母小写,其余单词的首字母大写。

Pascal命名规范:每一个单词第一个字母都大写

如果使用到英文单词的缩写,全部用大写。

在方法中定义变量,要使用Camel 命名法.main方法中也是.

公司命名法:

strName iAge 匈牙利命名法

ls_name

赋值运算符和赋值表达式:

1、 赋值运算符 = 意思:右边的值赋值给左边

2、 a = a + 1 ; 这里的 = 是赋值运算符,不是数学意义上的相等。

3、 变量可以重复赋值,一旦给一个变量赋了新值,那么变量中的老值就不复存在了。

在一个方法中,一般情况下变量只能定义一次(先这么认为),但可以多次赋值,再次赋值时,会把变量中原有的值给覆盖掉。

例子:

定义一个变量存储客户的姓名,然后在屏幕上显示:“你好,某某”

某某代表客户的姓名

思路:

1、 首先考虑客户姓名是什么类型的

2、 然后输出 你好张三

3、 然后在输出这个变量。

+ 在C#中有2种意义

1、 在数学中的加法运算:两边参与加法运算的数据类型为数字类型,则“+”表示数学上的加法的意义。

2、 连接的意思:两边参与的加号运算的数据,有一个字符类型,那么这个“+”号就是连接的意义。

练习:

1、 定义3个变量,分别存储一个人的姓名(张三),年龄(28)和工资(7600.33)。然后在屏幕上显示,我叫XX,今天XX岁了,我的工资是XX元。

2、 定义一个变量存储一个人的年龄(18),然后发现这个人的年龄不是18岁,要把这个人的年龄修改成20岁(本题体会变量可以被重复多次赋值),最后把这个人的年龄输出到屏幕上?

在Console.WriteLine(“ ”);中,第一个变量/字符串中可以使用占位符。

占位符:由{数字}组成,数字由0开始编号

第一个占位符:{0}

第二个占位符:{1}

第三个占位符:{2}

…………

Console.WriteLine(); 有多个参数时,输出都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。

例: Console.WriteLine("我叫" + name,"今年" + age +"岁了");
Console.WriteLine("{0}我叫" + name,"今年" + age +"岁了");

练习:

1、 定义四个变量,分别存储一个人的姓名、性别、年龄、电话。然后打印在屏幕上。

2、 在屏幕上输出:我的手机是philips型号:998 价格:1500 重量:0.3kg(请定义变量存储上面的值,并显示在屏幕上。)

3、 定义两个变量如:a b分别赋值为10和5,写程序交换两个变量的值。

Console.ReadLine(); 用于让用户从键盘上输入一句话,当程序执行到下面这句话,就会暂停。然后等待用户从键盘上输入一句话,按回车程序将继续执行。如果想得到用户输入的内容,就需要定义一个string类型的变量。写在下面这句话前面,接受用户输入的内容。

接受用户输入的内容,必须定义一个字符串来进行接受。

String input = Console.ReadLine();

练习:

1、 问用户喜欢吃什么水果,假如用户输入“苹果”,则显示“哈哈,这么巧呀,我也喜欢吃苹果”

2、 请用用户输入姓名,然后在屏幕上显示“你好,XXX“,XXX为用户刚刚输入的姓名。

转义字符:

什么时候用转义字符,当我们需要在字符串中输入一些特殊字符时,比如:半角引号,换行,退格,就需要使用转义字符。

转义字符是一个字符,它由一个\ + 一个字母来组成具有特殊意义的一个字符。

常用的转义字符:

\n换行 \b 退格 backspace

\t 由多个空格组成的一个字符具有行与行之间对齐的功能 tap 键

\\

注: @字在字符串前面表示不转义

在字符串前面加一个@符号有两种意义:

1、 字符串中如果有\,则不再理解为转义符。

2、 是字符串可以换行。

如果字符串前面加了@符号,在字符串上用两个双引号代表一个双引号。

C#中,有五个算术运算符: + - * / %

它们二元运算符,要求:参与的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同。

在算术表达式中,如果要改变计算的优先级,用小括号。小括号可以无限级的出现,但一定要成对出现。

练习:

1、 定义两个数分别为10和20,打印出两个数的和。

2、 计算半径为5的圆的面积并打印出来。

3、 某商店T恤(tshirtPrice)的价格为35元/件,裤子(trousersPrice)的价格为120元/条,小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱(totalMoney)?

4、 假如商店为小明打8.8折(disMoney),那么小明应该付多少钱呢?(购物总计为:XX元,打折后应付为:XX元。价格先用double)

类型自动转换规则

1、 参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。当不一致时,满足下面条件是,系统自动完成(隐式转换)类型转换。

*两种类型兼容:参与运算的两个数据类型必须相兼容

例如:int 和double 兼容

*目标类型大于源类型:不丢失精度。

例如:double > int

*对于表达式

*如果一个操作数为double型,则整个表达式可提升为double型。

*比如前面打8.8折的练习题

*求10/3求余数要想得到3.333的处理。

2、在自动转换中,转换是不会丢失精度的。如果丢失精度,那么这个转换肯定不会自动完成。 经常见到的就是参与运算的两个操作数,一个int,一个是double,那么int类型会自动转换成double类型。

如果一个操作数为double型,则整个表达式的运算结果为double类型。

强制类型转换

1、 如上题中打完8.8折后出现小数,商店为结算方便,只收用户整数部分的钱,如本收用户166.78,现在只收用户166元,应该如何做?

语法:(数据类型名)待转换的值;

如:int b = (int)3.14;

强制类型转换,数据类型一定要相兼容。



注意:下面的两种转换是错误的,因为强制类型转换要求待转换的类型和目标类型必须都为数字。

// string age = (int)Console.ReadLine();

// int a = (int)”33”;

类型转型 :

问题:让用户输入他的语文和数字成绩,计算他的总成绩并显示出来?

Convert 不再仅是内存级别的转换,而是考虑数据意义的转换。Convert是一个加工、改造的过程。

Convert.ToInt32(待转字符串);

string s =
Console.ReadLine();
int age =
Convert.ToInt32(s);
int year = 2012 - age;

int 变量 = Convert.ToInt32(待转字符串);

语句的意义:把待转字符串转换成int类型后赋给变量

Convert.ToString 每种类型都还有 .ToString() 方法。

一切类型都可以转换成string类型。

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐