C# 数据类型、变量、运算符和表达式
数据类型、变量、运算符和表达式
C#
Console.WriteLine( 123675678568678768 ); // 数字 1
Console.WriteLine( "早上好" );//字符串
Console.WriteLine( 1.1 ); //数字 1.1
Console.WriteLine( true ); //布尔值 true
Console.WriteLine( false);
----------------------------------------------
一、C#中的数据类型
值类型:
简单基本值类型(13种)
枚举
结构
引用类型:
1. 13种数据类型,分为:
1) 整数:
byte short int long
sbyte ushort uint ulong
Console.WriteLine( 10 );
存储范围(二进制 字节 和 位 )
数据范围不一样
有符号
无符号
C#整数的默认类型:int
2)小数:
float double decimal
单精度 双精度 高精度
4 8 16
单精度和双精度的区别:
小数点后小数位的处理上
小数类型常用:float double
小数默认类型:double
如果要强调float,要数字的后面加大写或小写F
3)布尔:bool
布尔类型值只有两种:true false
真 假
场景:作为判断条件
4)字符:char
字符型只能表示任意的单个字符
这单个字符:汉字,字母,数字,符号,空格
将具体的单个字符放在一对单引号中。
char c1 = 'a' ;
'我'
'!'
'('
" " :双引号,放到双引号中的内容都原样打印
字符串
练习:
注:小数的级别要高于整数。
如:int存储时占4个字节,float存储也是4个 但是float的级别要高于int类型。
--------------------------------------------
2. 数据类型转换
自动类型转换,自动转型
强制类型转换,强制转型
说明:数据类型级别:(小数,整数)
小数级别高于整数
整数按从小到大:byte short int long
小数按从上到大:float double
注意:一般,int与float,double进行转换。
1. 什么是自动转型?规则是?
将一个范围小的数据放到一个范围大的数据
类型中,会自动提升小数据的类型。
//定义了byte类型的容器,容器名字为b
//容器中存储的值为10
如:byte b = 10 ;
//将b赋值给i,b属于byte类型,i属于int
int = byte,系统会自动提升b的类型,
提升为int类型,再赋值给i
int i = b ;
2. 什么是强制转型?强制转型的语法?
将一个范围大的数据放到一个范围小的数据类型
中,正常不能这样操作,程序会报错.
如果一定要这样做,需要使用强制类型语法
基本语法:
(要转换成的类型)
如:1.23 默认是double类型,如果现在要将这个
数字转成float类型,该如何做?
Console.WriteLine( 1.23 );
Console.WriteLine( (float) 1.23 );
总结:1
正常使用数据时,具体数据和类型保持一致;
但是如果出现不一致,就需要转型,转型时
推荐自动转型,如果一定要使用强制转型,
"强制类型有风险,使用时要谨慎".
因为有可能运算结果和正确结果不一致,
原因:数据溢出造成的.
2)
byte + byte = int
byte + int = int
short + short = int
short + int = int
如:
byte b1 = 1 ;
byte b2 = 1 ;
byte b3 = (byte)( b1 + b2 ) ;//正确
int i = b1 + b2 ; //正确
中午练习:
1)定义1个byte类型的容器,名为b1,值为10
定义1个int类型的容器,名为i1,值为-1
定义byte类型的容器,result1,值为
b1 和 i1 的和。
测试:这样的代码是否成立?如果不成立,如何改?
2)定义1个short类型的容器,名为 s1,值为 2
定义1个short类型的容器,名为 s2,值为 2000
定义short类型的容器,result2,值为
s1 和 s2 的和。
测试:这样的代码是否成立?如果不成立,如何改?
3) 2)定义1个short类型的容器,名为 s3,值为 2
定义1个int类型的容器,名为 i2,值为 -500
定义short类型的容器,result3,值为
s3 和 i2 的和。
测试:这样的代码是否成立?如果不成立,如何改?
说明:数据类型的代码,请找:
DAY02_01_DataType (项目)工程
下午
二、变量
1. 什么是变量
内存中的一块区域,存储是程序中用到
各种各样类型的数据。
2. 变量的定义 和 初始化
基本语法:
[访问修饰符] 变量的类型 变量名 ;
1) 变量类型是基本数据类型
13
如:byte float int bool ......
2) 变量名
3) 变量初始化,就是为变量赋值的操作
基本语法 :
变量名 = 具体的值 ;
练习:
1) 定义int类型的变量变量名为number,
用于存储一个具体的数字
int number ; //先定义
number = 30 ; //再赋值
//定义变量的同时为变量赋值 ,值为30
int number = 30 ;
2) 定义一个人年龄的变量,byte,初始30
byte age = 30 ;
Console.WriteLine( age );//30
age = 31 ; Console.WriteLine( age );//31
age = 32 ;
Console.WriteLine( age );//32
3. 变量的特点
1)可以被多次赋值,值应该是最后一次的值;
2)变量在使用之前一定要先赋值,否则不能
使用(注:方法中定义的变量),局部变量
错误提示:使用了未赋值的局部变量****
3)在同一个代码块中,变量名不能重名;
一个代码块指的是:{ }
4)变量进行赋值时,一般,赋值的值类型
应该和变量的类型是一致的。
5)如果要同时定义多个同一类型的变量时,可以
在一行上定义这些变量并赋值;也可以先在一 行先定义,再赋值。
语法:
数据类型 变量名1 , 变量名2 ,变量名3.. ;
如:依次定义4个int类型变量并赋值
int a = 10 ;
int b = 20 ;
int c = 30 ;
int d = 40 ;
等价于:
//一次性定义了4个int类型的变量并为变量赋值
int a = 10 , b = 20 , c = 30 , d = 40 ;
//一次性先定义了4个int类型的变量
int a , b , c , d ;
//再为4个变量赋值
a = 10 ;
b = 20 ;
c = 30 ;
d = 40 ;
4. 变量名
1. 变量名中只能包含:
大小写英文字母、数字
下划线、@等字符 ;
2. 变量名不能以数字开头,可以以大小写字母
下划线等开头。@应用时,string
3. 变量名不能使用关键字或保留关键字
注:关键字是蓝色的单词
54个关键字
4. 变量名由一个单词,单词全部小写;
如果由多个单词组成,从第二个开始,
首字母大写,其它的小写;
称为:Camel 驼峰式
如:
定义一个速度的变量:
定义一个球移动速度的变量:
double speed ;
double moveSpeed ;
double ballMoveSpeed ;
Pascal 命名规则
Camel 命名规则
5.见名知意
--------------------------------------------
练习:
变量的定义和初始化
详细请见代码 :DAY02_02_Var 工程--VarDemo1.cs
2,
以下列出来的一些变量名,符合我们的要求吗?
int Static = 10 ;
float 成绩 = 60 ;
double 10Math = 1.1 ;
int weight = 40 ;
int Main = 70 ;
详细请见代码 :DAY02_02_Var 工程--VarDemo3.cs
5. 变量的分类 ( ???? )
后面讲
----------------------------------------------
三、运算符和表达式
算术运算符:
比较运算符: 关系运算符
赋值运算符:
逻辑运算符:
三目运算符:三元运算符 条件运算符
位运算符(将数据改为二进制 了解 )
(1)算术运算符:+ - * / % ++ --
10 + 2 = 12
10 - 2 = 8
10 * 2 = 20
20 / 3 = 6
注:
1. 两个整数相除,只取整数,不管小数是
多少,直接忽略不计。
2. % 取余数
判断一个数是否是偶数:
和2相除时,能除的尽
能除的尽的含义是:余数为0
x % 2 == 0 是偶数
2 4 6 8 10 30 34
判断一个数是否是奇数
判断一个数是否是另外一个数的倍数
3. ++ 和 --
++:称为自增运算符,在原来值的基础之加1
--:称为自减运算符,在原来值的基础之上减1
++或--只能用在变量前面或后面,且变量一定
是已经赋值的变量。
例如:
int n = 10 ;
n++ ; //n 的值在原来的基础上加1
Console.WriteLine( n );//11
int n = 10 ;
++n ; //n在原来值的基础上加1
Console.WriteLine( n );//11
int n = 1 ;
//++在n的前面,先为n进行加1操作
//加完1之后,再拿结果跟1比较
//如果确实比1大,成立
//否则,不成立
++n > 1 ;
Console.WriteLine( n ); // 2
int m = 1 ;
m++ > 1 ;
练习:
1. 定义两个int类型的变量并赋值
求这两个数的和,差,积,商,求余数的结果
代码详见:DAY02_03_Calculation--LianXi1.cs
2. 控制台输出:
Console.WriteLine( );
3. 控制台输入:用户通过键盘输入的内容
Console.ReadLine( );
4. 步骤:
Console.WriteLine("请输入一个数字:");
string str = Console.ReadLine();
int n = int.Parse( str );
数据类型
int
float : F ,f
double:默认值
bool :true|false
变量
变量定义 初始化 特点
运算符
1.总结C#中的关键字
2.以下关于变量命名是否正确(编译能否通过(必做)
int _123 ; 正确
double *abc; 错误(*不属于允许出现的字符
bool isDangYuan ; 正确 (推荐)
bool IsDangYuan ; 正确
float Main; 正确
byte static ; 错误,static是标识符
int main;
3.改错题。(必做)
下列变量的命名是否正确,正确请写出结果,错误的请说明原因.
1) int 123go = 100;
2) int 成绩 = 60;
3) class = 1;
4) int a,b = 10;
int c = a+b;
Console.WriteLine(c) ;
5) int length = 10;
Console.WriteLine( length );
6) int size = 20;
Console.WriteLine( size );
7) int count = 30;
count = 60;
Console.WriteLine( count );
8) int i = 128;
i = 10000000008;
Console.WriteLine( i );
9) float f1 = 6.0;
float f2 = 4.9;
Console.WriteLine( f1-f2 );
二、选择题
1.下列哪些属于 C# 中的关键字( ).(多选题)
A. static
B. string
C. Main
D. using
2.我上个月的收入是9999.99元,
请问怎么声明变量保存这个数据呢( ).
A. int salary ;
salary = 9999.99;
B. string salary ;
salary = 9999.99 ;
C. salary = 9999.99 ;
D. double salary ;
salary = 9999.99;
E. float salary ;
salary = 9999.99;
3.下列哪一个选项中变量 x 的值最小()。
A. int x = 2 + 2 ;
B. int x = 2 - 2 ;
C. int x = 2 * 2 ;
D. int x = 2 / 2 ;
4.下列哪一个选项中变量 y 的值最小()。
A. int y = 10 % 3 ;
B. int y = 3 % 10 ;
C. int y = 10 % 11;
D. int y = 10 % 10;
5.已知变量 x的值为3,下列选项中()会打印数字4。
A. Console.Write(x++);
B. Console.Write(++x);
C. x++;
Console.Write(x++);
D. ++x;
Console.WriteLine(x);
三、问答题。(选做题)
请说说你对C#中”=”和”==”区别,
并说明2者使用场景。
四.写出下列程序的运行结果 (不写)。
1)
class DemoTest
{
static void Main( string[] args )
{
Console.WriteLine("111");
Console.Write("222");
Console.WriteLine("333");
}
}
2) ()暂时不做)
class DemoTest2
{
static void Main( string[] args )
{
int x = 5;
int y = 5;
int z = 5;
x++;
Console.WriteLine(x);
Console.Write(y++);
Console.WriteLine(++z);
}
}
五.编程题.
1) 键盘输入一个三位数,然后用代码取出这个
四位数中的每一位(百位,十位,个位)必做题
如:用户输入952,控制台显示:
百位为9, 十位为5,个位为2.
2) 请使用至少1种方式实现2个变量交换(选做题)
如:int n1=10; int n2=20;
交换后int n1=20;int n2=10;
3) 百分百计算程序(选做)
用户以控制台输入2数整数。由程序计算出一个整数占第2个整数的百分比。
程序运行结果:
请输入第一个整数:40
请输入第二个整数:80
50%