1.变量1
计算机使用内存来存储数据
内存存储正在运行的程序数据,RAM:内存断电,数据丢失
我们在计算机中存储数据和客人住旅馆很类似
变量:代表一块内存空间,可以通过变量名称向内存存取数据。
2.变量2
2.1 在计算机中存一个这数字1000需要二句话
2.2 int a;//开一个能放数字的空间
2.3 a=1000;//把1000放进去
2.4 声明变量的语法格式:
数据类型 变量名;
2.5 赋值:变量名=值;
2.6 可以a=3.14;吗?
3.计算机中的数据
3 3.14 100 the quick brown fox jumps over the lazy dog 张三 李四 True 2012-5-7
int : 3 5 100 -10
double : 3.15 5.12 3.2 -2.3 带有小数点
double pi;
pi = 3.14;
char : 'a' 'A' 'c'
字符型:只能存储一个字符,要在单引号内
char = sex;
sex = '男';
string : “zhangsan”“李四”
字符串:把0个或者1个或者多个字符连接起来,要在双引号内
string name;
name = "kate";
decimal : 存储金钱5.62
decimal d = 5.55m; m/M:指定5.55为decimal类型
4.变量的声明方法
A) 先声明:数据类型 变量名称;
int age;
再赋值: age = 18;
B) 定义时赋值:数据类型 变量名称=值;
int age = 18;
C) 声明多个相同类型的变量,用逗号分隔。
string zsName, lsname, wwname;
变量一定要先声明,再赋值。
练习:
1.定义一个变量pi, 并把3.14存进去,然后显示在屏幕上。
double pi = 3.14;
Console.WriteLine(pi);
Console.ReadKey();
2.想想下面代码的输出结果。
int i = 10; Console.WriteLine("i"); i
5.变量的命名规则
5.1 必须以字母 _ 或@符号开头 字母包括中文,各国语种
5.2 后面可以跟任意数字,字母,下划线
5.3注意:
5.3.1 变量名不可与C#中关键字重复
5.3.2 C#中,大小写是敏感的
5.3.3 同一函数体内,同一变量名不允许重复定义,可以重复赋值
5.4 变量名要有意义
5.5 C# 变量命名编码规范--Camel 命名法:
首个单词的首字母小写,其余单词首字母大写 string studentName,zsAge;
5.6 Pascal命名规范:第一个单词第一个字母都大写 SoftwareName SystemVersion
5.7 如果使用英文单词的缩写,全部用大写
6.赋值运算符与赋值表达式
赋值运算符:=
a=a+1;
变量可以重复赋值,一旦赋新的值,老值会被覆盖
int age = 10;
age = 20;
Console.WriteLine(age);
输出20
7.“+”在C#中二种意义:
1)做加法运算 参与数据是数字类型
2)连接的意思 参与数据有一个是字符类型
练习:
1.定义三个变量,分别存储一个人的姓名(张三),年龄(28),和工资(7600.33),在屏幕上显示:我叫XX,今天XX岁了,我的工资是XX元。
2.定义一个变量存储一个人的年龄18,然后发现此人不是18,要改成20,最后把这个人的年龄输出到屏幕上。
在Console.Writeline("")中,第一个变量/字符串中可以使用占位符
占位符由{数字}组成,数字 由0 开始编号
第1个占位符:{0}
第2个占位符:{1}
第3个占位符:{2}
。。。
Console.WriteLine();有多个参数时,输出的是第一个参数的内容,从第二个参数开始都是用来替换第一个参数中的占位符的值,从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。
3.定义四个变量,分别存储一个人的姓名,性别,年龄,电话。 然后打印在屏幕上。
4.在屏幕上输出:我的手机是philips 型号:998 价格:1500元 重量:0.3kg
5.定义二个变量:如a b分别赋值为10 和5 写程序交换二个参数的值。
8.字符串类型
8.1 再学一句程序:Console.ReadLine(); 用于接收用户输入
要用string 类型变量接收用户输入!
练习1.问用户喜欢吃什么水果,假如用户输入苹果,则显示:哈哈,这么巧呀,我也喜欢吃苹果。
练习2.请用户输入姓名,然后在屏幕上显示:你好,XXX
9.字符串中的转义字符 (属于一个字符)
由 \字符 组成
\n 换行
\b 退格
\t Tab 制表符 同多个空格组成的一个字符,具有行与行之间的对齐功能
@:在字符串前面
1)字符串中如果有\,则不再理解为转义
2)使字符串可以换行
如果字符串前面加了@,在字符串中用二个双引号代表一个双引号。
10.算术运算符及算术表达式
10.1 算术运算符:+ - * / %(求余,取模)二元运算符
参与运算的操作数必须类型相同!结果与操作数类型相同!
10.2 算术表达式:由算术运算符连接起来的式子,如:1+1 a-b(变量已经提前声明并赋值)
10.3 演示:某学生三门课成绩为:语文:90 数:80 英语:91 编程求总分,平均分
10.4 优先级:先乘除后加减,有括号先算括号里面的,相同级别从左向右算
10.5 小括号可以无限制 套用,但一定要成对出现。
练习:
练习1. 定义二个数分别为10和20,打印出二个数的和。
练习2. 计算机半径为5的圆的面积,并打印。注意类型相同
练习3. 某T 恤的价格为35元/件,裤子的价格为120元/条,小明买了3件T恤,2条裤子,计算并显示小明应该付多少钱。
练习4. 假如商店为小明打8.8折,小明应该付多少钱。
11.算术运算符-自动类型转换
a) 下面代码输出的结果是什么
int a = 10, b = 3;
int mod = a %b;
double quo = a / b;
Console.WriteLine(mod);
Console.WriteLine(quo);
12.类型自动转换规则
12.1 参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。
当不一致时,满足下面条件时,系统自动完成类型转换
A)二种类型兼容 如:int 和double 兼容
B)目标类型大于源类型 如:double >int 小的转向大的不丢失精度
12.2 对于表达式
A)如果一个操作数为double类型,整个表达式可以提升为double类型
B)比如前面打8.8折的习题
C)求10/3求余数想得到3.333的处理 转换一个操作数为double int*1.0
13.强制类型转换
13.1 如上题中打完8.8折后出现小数,为了结算方便,只收整数部分,如应该收166.78,现在只收用户166,怎么做?
13.2 语法:
(数据类型名)待转换的值;
13.3 如:
int b = (int)3.14;
强制类型转换,数据类型一定要相兼容。
需要丢失精度的转换时,系统不会自动转换。
14.类型转换
Convert不再仅是内存级别的转换,而是考虑数据意义的转换,Convert是一个加工改造的过程。
字符串转换成int 类型
int 变量名=Convert.ToInt32(待转换的字符串);
Convert.ToString 每种类型都还有.ToString()的方法.
一切类型都可以转换成string类型。
简化:
15.try-catch的使用 异常捕获
try
{
有可能出现错误的代码;
}
catch
{
如果try 中的代码出现异常,则进去catch 中,无异常则不执行catch中代码
}
16.算术运算符加强
a)++ 自加一 有前加和后加
int age = 18;
int sum = age++ - 10;
相当于:
int age = 18;
int sum = age - 10;
age = age +1;
int age = 18;
int sum = ++age - 10;
相当于:
int age = 18;
age = age + 1;
int sum = age - 10;
后加时取原值运算,运算后自加1
前加时先自加1,然后运算
运算后,都自加了
b)-- 自减一 有前减和后减
注意:一元运算符++/ -- 比二元+-优先级高
复合赋值运算符:
c) += 自加一个数:age += 3; 相当于age = age + 3;
d) -=
e) *=
f) /=
g) %=
+-*/ 只能运算
改变变量的值的:
=
++/--
+=
-=
*=
/=
%=
17.关系运算符:6个 用于比较二个事物之间的关系
>
<
==
!=
>=
<=
关系表达式:由关系运算符连接的式子。
大象的重量1500 > 老鼠的重量1
兔子的寿命3 > 乌龟的寿命1000 假命题
39 > 20
我的年龄 20 == 你的年龄20
比大比小的结果是什么?
18.bool类型
a)bool值只有二个:
真:true
假:false
b)关系表达式的结果是bool类型
c)在计算机中描述张三20岁比李四18岁小,这句话的结果
19.逻辑运算符:&& || !
&& 与
|| 或
! 非
a)表达式1 && 表达式2
&&连接的二个表达式要能够求解成bool类型,一般为关系表达式
整个&&运算的结果也是bool类型
表达式1 | 表达式2 | && |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
全为True时结果为True
b)表达式1 || 表达式2
表达式1 | 表达式2 | || |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
只要有一个为True 结果为True
c) 逻辑非:! 一元运算符 取反
!(bool类型表达式)
关系运算符 优先级大于 && ||
判别闰年:符合条件之一:
1.年份能够被400整除
2.年份能够被4整除,但是不能被100整除