c#中的变量
内存:用户存储正在运行的程序数据RAM(随即存储器)断电后里面的数据丢失
变量代表这一块内存空间,我们可以通过变量名称向内存存/取数据.有变量就不需要我们记忆复杂的内存地址了.
先向计算机申请一块内存空间, 考虑往内存放的数据的类型
向内存申请一块内存空间的语法:
数据类型变量名;
整数在我们C#中的数据类型叫int
int number://申请开辟一块内存空间 =(符值预算符)
number=1000 //把1000放到number中
Console.WriteLine(number); //不加引号是显示number中的数值加引号是原封不动的输出number
Console.ReadKey();
C#中的其他数据类型
double 小数
decimal常用于财务上的
C#中常用的数据类型
Int: 3 5 100 -10整数
double:3.14 10.5 -3.14 -5.0小数
char: ‘A’‘B’‘C’字符型只能存储一个字符并且要求存储的这个字符要求用单引号引起来
string: “Zhangsan”“李四”“计算机”“HelloWorld””字符串类型,就是把0个或1个或多个字符连接起来,字符串要求用双引号引起
decimal:存储金钱 5.62
在C#开发环境中,直接写一个小数是double类型的,在一个小数后面加一个m/M,就告诉编译器是一个decimal类型
decimal d=5.55m;
decimal和double 范围不一样精度(有效位)不一样
变量的声明的三种方法
1 先声明,后符值int a;a=3;
2定义变量时,直接符值int a=3;
3一次声明多个同类型变量,多个变量名称之间用逗号隔开,最后已分号结束
String zsname,李四name,;
Intzsage=18,lsage=20;
变量一定要先声明、后赋值、最后使用(取值、或者调用或写)
变量的命名的规则
1必须以“字母”_或@符号开头(第一个字不能以数字开头)
2后面可以跟任意“字母”、数字、下划线
注意:
1、你起的变量名不要与C#系统中的关键字重复(变蓝色的字不能用)
2、在C#中,大小写是敏感的
3、同一个变量名不能重复定义,可以重复赋值
在方法中定义变量,要使用Camel命名法。(首字母小写,其余单词首字母大写studentName,只有一个单词的话都是小写,写在main方法中的命名都用Camel命名法)
如果涉及到英文缩写时全部用大写
Pascal命名规范:每一个单词第一个字母都大写
在方法中定义变量,要使用Camel命名法。Main方法也是
变量可以重复赋值,一旦给一个变量赋值了新值,那么变量中的老值就不复存在了(覆盖原有的值)
“+”在C#中有两种意义:
1) 是数学中的加法的运算;两边参与加法运算的数据类型为数字类型,则“+”表示数学上的加法意义。
2) 是连接的意思;如果两边参与加号运算的数据,有一个是字符类型,那么加号另一边就会隐式转换为字符串类型,那么这个“+”就是连接的意义。
在Console.WriteLine(“”)中,第一个变量或字符串中,可以使用占位符。
占位符由{数字}组成,数字由0开始编号,第一个占位符{0},第二个占位符{1},第三个占位符{2}
Console.WriteLine(“我叫{0},今年{1}岁了,我的工资是{2}元”,name,age,salary);
0永远取的后面第一个变量,1永远取的后面第二个变量
用逗号分隔的是参数
Console.WriteLine();有多个参数时,输出的都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有占位符。
在Console.WriteLine中若使用占位符就不需要加“引号”,如果要直接输入变量把要直接显示的参数当作一个字符串并且用加号连接。变量不需要加“引号“,如果开头是一个变量开头也不用”引号“。
电话号码的类型一般用 string,一般不用int或long,一般需要运算的时候才用数值的类型手机的型号一般也用string
两个值得交换要借助第三方的一个临时变量,不能直接交换,例如:
A=10,B=5使A=5,B=10
Temp=A
A=B
B=Temp
如果直接写A=5,B=10的话是重新赋值而不是交换
再学习一句话
Console.ReadLine();
用于让用户从键盘上输入一句话,当程序执行到下面这句话,就会暂停,然后等待用户从键盘上输入一句,按回车程序将继续执行。
只要让用户输入的就是字符串,哪怕是数字
如果想得到用户输入的内容,就需要定义一个srting类型的变量,写在下面这句话前面,接收用户输入的内容
Console.ReadLine();
String input=console.ReadLine();
转义字符:
什么时候用,当我们需要在字符串中输入一些特殊字符串中输入一些特殊字符时,比如:半角引号,换行,退格,就需要使用转义字符。
转义字符是一个字符,他由一个\加一个字母来组成具有特殊意义的一个字符。在前面加
常用的转义字符
\”
\n表示换行
\b backspace退格
\t tab键由多个空格组成的一个字符,具有行与行之间的对齐功能(用于上下数字对齐,由于上下数字位数不一样用空格对不齐,用Tab就可以解决8)
\\ 在需要输入\ 两个表示一个\ 第一个是转义第二个是输出的
@表示里面的\不在转义@在引号前加
1字符串中如果有\,则不再理解为转义符
2使字符串可以换行
如果输入了@还需要输入引号的时候,两个引号表示一个
算术运算符及算术表达式
算术运算符:+-*/%(取余数取模)
算术表达式:由算术运算符连接起来的式子,如1+1 a-b(变量ab前面已声明并赋初值)
算术优先级:先乘除后加减,有括号先算括号内的,相同级别的从左到右运算。
要求:参与的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同。
为什么int类型乘以double类型结果是double类型??????
在算术表达式中,如果要改变计算机的优先级,用小括号,必须成对出现
Int a=10, b=3;
Int mod=a%b; //a%b取余数=1
Double quo=a/b;
Console.WriteLine(mod);
Console.WriteLine(quo);
类型自动转换规则
发生自动转换(隐式转换)的条件:
1) 参与运算的两个数据类型必须相兼容,,例如两边都是数字,
2) 必须一边的数据类型表示范围小,一边的范围大,并且把晓得转向大的不丢失精度。
有效位小的向有效位大的转没有问题,反之不行。(在隐式转换的时候最基本的是不丢失精度(有效位))
在自动转换中,转换是不会丢失精度的.如果丢失精度这个转换肯定不会自动完成经常见到的就是,参与运算的两个操作数,一个是int,一个是double,那么int类型会自动转换成double int>>>double
如果一个式子当中有个double类型,整个式子就被提升为double类型.
强制类型转换
只能相容的转换,数字转数字
语法:
当需要丢失精度的转换时(如从double3.14到int3的转换,会丢失0.14的精度),系统是不会帮我们自动转换的,需要我的的程序员来写代码完成转换
转换的语法为: (数据类型名)待转换的值
Int a=(int)3.14
输出为3
把字符串转换成数字(整数)类型
Int变量名=Convert.ToInt32(待转换的字符)
把字符串转换成数字(小数)类型
double 变量名=Convert.Todouble(待转换的字符)
把待转字符串转换成int类型后赋给变量
Int a=10,b=3 cw(a.Tostring()+b) 要把数字直接变成字符串类型可以加.Tostring()