黑马程序员_变量和表达式

黑马程序员_变量和表达式

  1. c#基本语法
  2. 变量及其用法
  3. 表达式及其用法

 

1、c#基本语法

1.语句如何结束

       c#的编译器是不考虑代码中的空格、回车符、和tab字符的,它们都被视为空白的字符,编译器识别一段语句的结束标准是遇到“;”(分号)或“}”(大括号);

eg:

{

<code line1,statement1>;

<code line2,statement2>

    <code line3,statement3>;

}

上面是演示用的伪代码,想表达的意思是,总共有三行的语句,第一行语句的最后有一个“;”号,故这一行是一个部分;而第二行的结尾并没有分号结尾,所以它并没有结束,而第三行却有,所以它们属于同一部分;

 

2.代码的易读性

      在程序代码编写的时候尽量的遵守一个大家都使用的编程习惯,比如对于变量和方法采用统一的命名方法,在代码格式的书写上,在适当的时候,要使用缩进,这样可以增加代码的易读性,方便于自己日后的维护,也方便别人的查看;我们写的代码再好,只有你自己能够看的懂,那不是本事,自己看得懂,别人也能一下看懂,那才是大牛;

eg:

{

    <code line1>;

     {

          <code line2>;

          <code line3>;

     }

    <code line4>;

}

在适当的时候加入适当的缩进和换行,可以使程序的结构一目了然;

注:不过即使你的代码样式写的十分的丑,VS还是为我们提供了,统一格式化代码的功能,也就是说,即使你所有的源代码都没有缩进和换行,只要程序没有显示的语法错误按下快捷键ctrl+E、D,就可以将代码的样式格式化成默认的格式;

 

3.代码中的注释

      随着程序的规模越来越大,在一开始就养成写代码注释的习惯显得尤为重要,因为它可以帮助我们在日后,清楚的了解自己所写的代码的具体功能,也方便于我们日后的查找和维护;

      c#中的代码注释分为三种:1.行注释 2.块注释 3.文档注释

eg:{

     <a statement>;   //前面两个斜杠的是行注释,编译时直接忽略

    /*

      以一个斜杠和星来开头,星斜杠来结尾的是块注释,其中的语句都是一些说明性的文字,编译时也是忽略

*/

 

    ///三个斜杠是文档注释,在vs中输入三个斜杠时,会智能的转换成一系列为方法做注释的一些参数,我们直接填入即可;在软件完成时,可以生成类中方法的文档;

}

 

 

 

2、变量及其用法

   1.变量的概念

   “程序的核心是处理各种数据,数据的表现形式即是各种变量”,这句话说明了变量为什么会产生的原因。实际上我们电脑中所有的数据,在计算机硬盘上的存储形式,都是用0和1的。我们为了区分存储东西的不同,就使用到了变量。

       变量在内存中,可以想象成架子上的盒子,这个盒子可以是空的,当然也可以放不同的东西,关键取决于盒子的形状和功能;这样的话,变量为了存储不同的数据,就要有一个名称和类型;名称可以让我们方便的使用到它们,类型则代表了它们存储数据的不同类型;

 

2.变量的定义

      前面讲了变量是要有名称和类型的,所以在定义它的时候,就必须指定这些内容;

eg: <type> <name>;

       int age;

注:1.变量在使用前必须声明

       2.在C#中我们可以使用的变量是无限多的,因为我们可以自己定义变量类型;

 

还可以一次定义多个变量

eg:<type> ,<name>,<name>...;

    int a,b,c;

 

3.变量的类型

     变量的类型可以分为简单类型和复杂类型,我这里主要总结的是简单类型变量;

      简单类型变量又可以分为值类型、字符型、布尔型;值类型中又有整数型,和实数型之分。具体如下表

整型:

类型      允许的取值范围
sbyte -2^7到2^7-1
byte 0到2^8-1
short -2^15到2^15-1
ushort 0到2^16-1
int -2^31到2^31-1
uint 0到2^32-1
long -2^63到2^63-1
ulong 0到2^64-1

long类型在定义时,要在后面加入L或l因为默认的字面类型是int型;

 

浮点型:

类型 取值范围 可以显示的小数点后的位数
float 1.5*10^-45到3.4*10^38 7
double 5.0*10^-324到3.4*10^308 15到16
decimal 1.0*10^-28到3.4*10^28 28到29

       float类型在定义的时候要在数值后加入f或F表示,因为浮点型的默认类型是double类型的,不加的话就是double类型的,就要进行强制类型转换;

      decimal在定义时,要在后面数值后面加入m,或M个人猜测这个m应该代表的是money也就是钱的意思,因为设计这个类型就是专门用在钱的计算上的;

 

其他类型:

类型 允许的值
char 一个unicode字符;0-65535
string 一组字符
bool 只有true和false

string类型的字符数是没有上限的,因为它们使用的可变大小的内存;

bool类型虽然简单,只有两个值,但是它在程序的流程控制上却起到了,至关重要的作用;

 

4.变量的命名

     之前也提到了程序规范化的重要性,好的代码结构可以让我们一目了然,虽然VS可以帮我们格式化代码,但是它却不能格式化我们的变量名,而在c#中变量的命名,又是没有限制的,如果没有统一的规范的话,在程序后期的维护时,会相当的痛苦;以下是一些约定俗成的一些变量命名的规范:

1.变量名的第一个字符必须是:字母、下划线、汉字或@符号(注意不能以数字开头);

2.其后的字符可以字母、数字、下划线或汉字;

3.变量名不能和c#中的关键字重名(像int、double、if、using等都是),如果实在要重名的话,可以在重名关键字的前面加一个其他的字符用于区分;

4.尽量取有意义的名称,可以表示变量的作用的名字;

5.简单类型变量,采用帕斯卡命名法(PascalCase),即首字母大写,随后的单词的首字母也都是大写;

注:c#的变量名是区分大小写的。这点一定要注意,即使名称相同,大小写不同,表示的也是不同的变量;

 

5.变量的赋值

    变量可以在定义过后赋值,也可以在声明的时候直接的赋值;

eg:

{

     int age;

     age = 20;

}

{

     int age = 20;

}

以上两个赋值的方式效果都差不多,看具体的场合采用不同的初始化方法;(变量在使用前,必须初始化,因为空的盒子是不能被使用的);

 

还可以同时为多个变量赋值

eg:

1.{

     int a  = 3,b =4 ,c =5;

}

2.{

     int a,b,c;

     a = b= c = 3;//abc值都被赋值成了3

}

 

 

 

3、表达式及其用法

1.什么是表达式

    c#中的表达式是利用运算符和操作数所建立的,这个表达式有点像数学计算中的表达式,而说到数学中的表达式,就肯定要牵涉到运算符和操作数。C#中同样也涉及到各种各样的运算符。

2.表达式中的运算符

     可以分为一元、二元和三元,它们分别代表1、2和3个操作数。其中二元占多数,三元的只有一个。下表列出了c#中所有的数学运算符,这个不用刻意的记忆,它就是来自数学中运算符,只是书写形式变了而已;

数学运算符

运算符 类别 结果
+ 二元
- 二元
* 二元
/ 二元
% 二元 取余数
+ 一元 表示整数
- 一元 表示负数

表示整数的”+“在代码中是可以忽略的,就像在数学中一样;

自增运算符

其中”a=3,b=4;”

运算符 类别 示例 结果
++ 一元 b=a++; a = 4,b = 3;
-- 一元 b = a--; a = 2,b = 3;
++ 一元 b = ++a; a = 4,b = 4;
-- 一元 b = --a; a= 2,b = 2;

其中的规律是:++或--的符号在操作数的左边的话,就先把值赋给表达式,然后操作数才自增1;反之操作数先自增1,然后再赋值;

赋值运算符

运算符 示例 结果
= a = b; b的值赋给a
+= a+=b; a,b的和给a
-= a-=b; a,b的差给a
*= a*=b; a,b的积给a
/= a/=b; a,b的商给a
%= a%=b; a,b的余数给a

 

3.运算符的优先级

    数学中运算也存在诸如”先算乘除,后算加减,括号中的要最先算“这样的计算优先级问题,所以这里的表达式自然也少不了;

我们可以类比与数学中的运算符优先级来记忆这里的优先级;

  

       ”++,--(用于前缀),+,-(表示正负的)“它们优先级是最高的,不言而喻;

 

       ”()“括号的优先级最高可以改变原本的优先级顺序;

       ”*,/,%“它们是统一级别的高于”+,-“;

       ”=,+=,-=,*=,/=,%=“运算符优先级低于”+,-“;

     “++,--(用于后缀)”它们最低,因为它们不对表达式的结果产生任何的影响,支持改变的了操作数的值;

 

以上的优先级,还是及其的符合我们正常的思维逻辑的,在创建某一表达式的时候,如果实在记不住,这些优先级。就使用”()“一层层的嵌套,这样虽然麻烦,但却行之有效;

 

你可能感兴趣的:(程序员)