---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
1. 内存:用户存储正在运行的程序数据(不准确),
RAM:内存有个特点,断电后里面数据丢失。如word文档我们写字时写在内存中,一旦保存保存在硬盘里。
向内存写数据分两步骤:申请内存空间——入住。(如去旅馆)(1) 登记(2)入住
2. 变量:代表着一块内存空间,我们可以通过通过变量名称向内存存/取数据。有变量就不需要我们记忆复杂的内存地址。
3. 向内存申请一块内存空间的语法:
数据类型 变量名; int a;
数据类型;数值和非数值。数值:整型int和非整型double(如小数)/decimal(金钱)
非数值char和string
Int(整型) 3 Help Library5 100
Double(小数) 3.14 10.5
Char(字符型) 只能存储一个字符不能为空,可以为空格(空格也是一个字符类型),并且存储的这个字符要求用单引号引起来 ‘A’ ‘a’
Char sex; sex=’男
String(字符串):就是把0个或1个或多个字符连接起来。字符串要求用双引号引起来。
“张三” “lisi” “计算机”
Decimal(比较大的小数通常来表示金钱,当然金钱额度较小时也可以用double表示)
Decimald=5.55m;
注意:在c#开发环境中,直接写一个有小数点的数字,这个数字时double类型的,在一个小数后面加一个m/M,就告诉编译器这个小数时decimal型。
4. 变量声明的三种方法
1)先声明再赋值。 Int a; a=3;
2)定义变量时,直接赋值。Int a=3;
3)如果一次要声明多个相同类型的变量可用逗号分隔开,
Stringzsname,lsname,wwname;
Int zsAge=18,lsAge=20;
变量一定要先声明,再赋值,再使用。
5. C#命名规则
1)必须以“字母”(一般来说用英文,也可以用汉子)或@符号开头
2)后面可以跟任意“字母”、数字、下划线。
注意:
A:你起的变量名不要与c#系统中的关键字重复。
B:在c#中大小写是敏感的。
C:同一个变量名不允许重复定义(先这么认为,不严谨)
定义变量时,变量名要有意义
C# 变量命名编码规范----Camel(骆驼)命名法:
首个单词的首字母小写,其余单词的首字母大写。如studentName,name
Pascal 命名规范:每个单词第一个字母都大写
SoftwareName,SystemVersion (系统名称)
如果使用到英文单词的缩写,全用大写。如:PI
在方法中定义变量,要使用Camel命名法。Main方法也是
6.“+”在C#中有两种意义:
1)是数学中的加法运算:两边参与加法运算的数值类型为数字类型
2)是连接的意思:两边参与加号运算的数据有一个是字符类型
7.在Console.WriteLine(“”)中,第一个变量/字符串中可以使用占位符
占位符由{数字}组成,数字由0开始编号
第一个占位符{0}—表示第一个变量
第二个占位符{1}—表示第二个变量
第三个占位符{3}—表示第三个变量
我叫{0},今年岁了,我的工资Á是{2}元a",name,age,salary
输出结果是我叫张三,今年岁了,工资是7600.33元。
无论{1}有没对应变量,{2}表示第三个变量。
Console.WriteLine()中有多个参数时,输出都是从第一个参数中的内容开始的,从第二个参数开始都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。
注意:参数之间用逗号“,”,隔开
1)第一个参数无占位符
注意:“字符串”+a+b 系统默认把a,b转为字符串类型
2)第二个参数有占位符
8.用户键盘输入 Console.ReadLine();
如果想得到用户输入的内容,就需要定义一个string类型的变量,写在下面的语句前,接受用户输入的内容
Console.ReadLine();
接受用户输入的内容,必须定义一个字符串来进行接收。
方法一:
string input;
input=Console.ReadLine();
方法二:
string input=Console.ReadLine();
9.转义字符
当我们需要在字符串中输入一些特殊字符时,比如:半角引号,换行,退格。就需要使用转义字符。
转义字符是一个字符(char类型),
转义字符是一个字符,他由一个\+一个字母来组成具有特殊意义的一个字符。
常用的转义字符:
\n表示换行
\b backspace表示退格
\t tab键 由多个空格组成的一个字符,具有行与行之间的对其功能
\\ 表示一个\
在字符串前面加一个@符号有两种意义:
1)字符串中如果有\,则不再理解为转义符,可以看成一个符号\
2)使字符串可以换行
如果字符串前面加了@符号,在字符串上使用两个双引号代表一个双引号
10.算术运算符
C#中有五个算术运算符:+-*/%
他们二元运算符。要求参与的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同。
优先级
在算术表达式中,如果要改变计算的优先级,用小括号(小括号可以无限制的套用,但必须成对出现)
(1)类型自动转换规则
参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。当不一致时,满足下面条件时,系统自动完成类型转换
两种类型兼容
例如:int和double兼容
目标类型大于源类型
例如:double>int一边表示范围小,一边表示范围大,并且把小的转换成大的的时候不丢失精度。
对于表达式
如果一个操作数为double型,则整个表达式可提升为double型
(2)强制类型转换
当需要丢失精度的转换(如从double3.14到int 3的转换,会丢失0.14的精度)时,系统是不会帮我们自动转换的。需要我们程序员来写代码完成转换,转换的语法为:(数据类型名)待转换的数值 int i=(int)3.14;
注意:下面两种转换是错误的。因为强制类型转换要求待转换的类型和目标类型必须都为数字
string age=(int)Console.ReadLine();
int a=(int)"88"
问题:让用户输入他的语文和数学成绩,计算他的总成绩并显示出来:
不能实现,因为用户输入的数据要用字符串接收,字符串不能强制转换成数字类型。因此引出新的转换方法
(3)字符串转换成数字类型
用Convert.ToInt32()将字符串转换成数值类型(也可转为其他类型),只能转换纯数字型字符串“333”,不能转换“33a”
例:通过用户输入的年龄计算出用户的出生日期
Console.WriteLine("请输入你的年龄:");
string s=Console.ReadLine();
int age=Convert.ToInt32(s);
int year=2012-age;
Console.WriteLine("你的年龄为:{0}",year);
Console.ReadKey();
11.tyr-catch的使用方法(简单用法)
try
{
有可能出现错误的代码;
}
Catch
{
如果tyr中的代码出现异常,则进去catch中
}
注意:如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容。
如果try中的带码一旦出错,程序立即跳入catch中去执行代码。那么try中的出错代码后面的代码不在这行了。
12.再学几个算术运算符
++ 自加一 有前加(++age 先加一再进行运算)和后加(先进行运算后加一)
- - 自减一 有前减和后减
在c#中,一般情况下,一元运算符的优先级大于二元运算符。
一元运算符++/--比二元的+-优先级高
+= age+=3<=>age=age+3
-= age-=3<=>age=age-3
*= ……………………..
/+ ………………………
%= ………………………
13.6个关系运算符,用于比较两个事物之间的关系。
> 大于
< 小与
== 比较相等
!= 比较不相等
>= 大于等于
<= 小于等于
关系表达式:由关系运算符连接起来的式子。
关系表达式运算结果为bool类型,bool类型只有两个值,一个是ture,yigeshi false.如果关于运算表达式成立,则这个表达式为ture,否则为false.
14.逻辑运算符:&&(与) ||(或) !(非) 逻辑运算符只能对bool类型变量使用。
!(非)>关系运算符>&&(与)>||(或)
例:用户输入张三的语文和数学成绩,输出以下判断是否正确,正确输出Ture,错误输出False
1) 张三的语文和数学成绩都大于90分
2) 语文和数学至少一门是大于90分
Console.WriteLine("请输入张三的语文成绩:");
int chinese=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入张三的数学成绩:");
int math=Convert.ToInt32(Console.ReadLine());
bool first=cinese>90&&math>90;bool sec=cinese>90||math>90;
Console.WriteLine("第一题的结果为:{0}",first) ;
Console.WriteLine("第二题的结果为:{0}",sec) ;
Console.ReadKey();
15.与或的短路问题
进行&&运算时,++a为假的话,程序停止(为真程序运行指导结束)
bool result=++a>50&&++b>1;
Console.WriteLine(a);
Console.WriteLine(b);
如果++a>50为假 程序到++a结束。
进行||运算时,++a>9为真,程序结束(为假接着运行)
bool result=++a>9||++b>1;
Console.WriteLine(a);
Console.WriteLine(b);
16.if结构的基本语法
If(条件)
语句1;
执行过程:首先判断条件的结果,如果条件为ture,则执行语句1.如果条件为false,则跳过语句1.执行后面的语句。(注意)if后面括号中的条件,要能计算成一个bool类型的值
2)默认情况下,if语句只能带1句话。即和if语句有关系的语句只有语句1.
If-else
语法:
If(条件)
{语句块1;}
Else
{语句块2;}
执行过程
如果条件为ture,执行if语句块1,跳过else语句
如果条件为false,跳过if语句块1,执行else带的语句块2
例:评优
成绩>=90 :A
90>成绩>=80:B
80>成绩>=70:C
70>成绩>=90:D
成绩<=60:E
注意:不能写if(90>score>80),应当写成if(score<90&&score>80)
因为score<90是个判断语句
注意:else永远和离他最近的if配对,所以尽量带上大括号
If()
If()
else
快捷键:Ctrl+k+f自动排版
17、switch-case
Switch-case语法
Switch(表达式)
{
Case值1:语句块1;
Break;
Case值2:语句块2;
Break;
default值:语句块3;
Break;
}
执行过程:首先计算表达式,然后根据计算结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出switch-case.如果所有的case值都不匹配,那么有default则执行default后面的语句,直到break结束。如果没有default,则跳出switch-case,什么都不执行。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------