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


---------------------- 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值