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%

posted @ 2019-09-10 19:34  Winward_King  阅读(1285)  评论(0编辑  收藏  举报