【C#学习笔记】1.基本语法结构

关键字:C#的关键字全部大写

注释:跟C++ / Java 风格一致,///是文档注释,只能写在类、方法、属性的前面。不能用来注释单个变量。

C#语言也是严格区分大小写的

C#中的常量:

常量,顾名思义,就是“不会改变的量”。

我们平时书写的数字(比如12.85)、字符(比如‘F‘)、字符串(比如"谢谢"),它们都属于“字面常量”。

有一些常量既重要又容易出错,比如圆周率π的值为3.1415926......,所以,我们常常会使用自定义常量。请看下面的代码:

  static void Main(string[] args)
        {
            const double PI = 3.1415926;                        //自定义常量PI
            Console.Write("半径为4的圆的周长为:");      //字符串常量
            Console.WriteLine(PI * 4 * 2);                        //使用自定义常量PI
            Console.Write("半径为4的圆的面积为:");      //字符串常量
            Console.WriteLine(PI * 4 * 4);                        //使用自定义常量PI
        }

需要解释2个关键字: const 关键字,表明PI是一个常量; double 关键字,表明PI的类型为“双精度浮点型”(一种精度很高的数字类型)。

你会发现,这段代码中使用了2次圆周率(周长、面积),但是因为使用自定义常量,所以字面常量3.1415926只书写了一次。这样做避免了重复书写导致的错误。

还有一点要特别注意:常量在声明时赋值,之后是不能修改的。

C#的变量

上一节我们学习了常量,但编程中使用最多的是变量,这一节我们学习变量。

变量能够存储数据,并且与常量不同,变量存储的数据可以修改。比如今年18岁,明年可以变成19岁。

使用变量分为3步:声明、赋值、使用。

声明变量的语法:数据类型 变量名;

给变量赋值的语法:变量名=值;

请阅读下面的代码:

        static void Main(string[] args )
        {
            int age;                //声明一个类型为int的变量age
            age = 18;             //给变量age赋值为18
            Console.WriteLine("我今年" + age+"岁"); //使用变量age
            age = 19;             //修改age变量的值
            Console.WriteLine("我今年" + age+"岁"); //使用变量age
        }

变量的声明和赋值可以同时完成(合在一起,也叫初始化)

C#的数据类型

我们知道声明变量需要写出数据类型,我们今天要学习的是最常用的几种类型。
字符类型 char ,存储用 ‘‘ (单引号)括起来的一个字符,例如:

char sex=‘男‘;//存储性别

字符串类型 string ,存储用“”(双引号)括起来的一串字符,例如:

string address="北京市宣武区牛街北口";//存储地址

整数类型 int ,存储整数,例如:

int age=23;//存储年龄

双精度浮点型 double ,存储小数,例如:

double salary=7991.63;//存储工资

以上四种是最常用的数据类型,其他常用类型,我们会随着课程深入慢慢介绍。

需要注意的是,某种类型的变量,只能存储这种类型的数据,否则,可能会出错。

C#的类型转换

上一节我们学习了4种数据类型,也提到每种类型的变量只能存这种类型的数据。可是,有时候真的需要把不同类型的值放在一起运算,比如这种:3.5+8 这时候怎么办呢?有下面2种情况:

自动类型转换:2种不同类型的数据运算,低精度类型会自动转换为较高精度的类型。
以3.5+8为例,显然数字8的精度较低(int),而3.5的精度较高(double),所以,8会自动转换为double型,即转换为3.5+8.0进行运算,结果为11.5。

请看这个例子:double d=2; 2的精度显然低于变量d的精度,所以2会自动转换为2.0然后赋值给d。
再看这个例子:int i=3.0;变量i的精度低于3.0,但是由于i已经声明为int型的变量,变量的值可以变,但变量的类型可不能变来变去的,所以这条命令会出错的。

强制类型转换:无法自动转换为我们需要的类型,可以用强制类型转换,比如上例可以这样完成:

int i=(int)3.0;

数字前面的(int)表示转换的目标类型为int,3.0会被强制转换为3。
需要注意, double 型强制转换为int型将失去小数部分,比如(int)2.8,我们得到的将是2。

C#标识符的命名规则

程序中的变量名、常量名、类名、方法名,都叫做标识符。C#有一套标识符的命名规则,如果命名时不遵守规则,就会出错。这套规则简单说有下面三条:

①标识符只能由英文字母、数字和下划线组成,不能包含空格和其他字符。

错误的标识符声明:string $user; //错在使用了其他字符

②变量名不能用数字开头。

错误的标识符声明:double 6h;//错在用数字开头

③不能用关键字当变量名。

错误的标识符声明:char static ;//错在用关键字static做变量名

C#的算术运算符(一)

计算机程序,当然少不了“计算”,要计算就必须了解运算符。今天,我们先学习算术运算符中的加、减、乘、除。

加:+ 。加号有2个用途:当用加号连接两个数字时,会计算出这两个数字的和。比如:

Console.WriteLine(9+2.2);//输出11.2

另一种情况,当加号两边包含字符串的时候,会把两边的表达式连接成新的字符串。比如:

Console.WriteLine(9+"2.2");//输出92.2,因为"2.2"是字符串,所以9也被转换为"9",+起的作用是连接字符串

减:- 。减号的作用就是减法。比如:

Console.WriteLine(15-23);//输出-8

乘:* 。乘号的作用是求2数的乘积。比如:

Console.WriteLine(0.8*3);//输出2.4

除:/ 。除号的作用是求2数相除的商。比如:

Console.WriteLine(2/0.5);//输出4.0

但是,2个整数相除,结果仅保留整数部分,小数部分会被舍去。

Console.WriteLine(5/10);//输出0

C#的算术运算符(二)

这一节我们学习取余运算符。

C#中的取余运算符就是%。上一节学习的除号,作用是求2个数字相除的商,而取余运算符%的作用是求两个数字相除的余数。比如:

Console.WriteLine(19/5);//求19除以5的商,输出3Console.WriteLine(19%5);//求19除以5的余数,输出4(商3余4)

编程中,%常常用来检查一个数字是否能被另一个数字整除。比如下面的代码片段:

int number = 29;
Console.WriteLine(number%2);//求number除以2的余数

如果输出0,表示没有余数,即number能够被2整除(是偶数);如果输出1,表示有余数,即number不能被2整除(是奇数)。

C#的算术运算符(三)

这一节学习两个特别的运算符++和--。

++,叫做自加运算符。比如你今年18岁,明年长了一岁,用代码写出来是这样:

int age=18;//今年18岁
age=age+1;//明年,在今年的年龄上加1岁

也可以写成这样:

int age=18;//今年18岁
age++;//明年,在今年的年龄上加1岁

age++;age=age+1;作用相同,都是变量的值+1。

--,叫做自减运算符。同理,你今年18岁,用了XX护肤水以后,明年变成17岁了,可以这样写:

int age=18;//今年18岁
age--;//等同于 age=age-1;

另外,age++;age--;也可以写作++age;--age;

但请注意:如果与其他运算在同一语句中,++写在变量前面或后面,算法不一样,请看下例:

Console.WriteLine(age++);作用等同于下面两句:

Console.WriteLine(age);//先打印a
ge=age+1;//后自加

Console.WriteLine(++age);作用等同于下面两句:

age=age+1;//先自加
Console.WriteLine(age);//后打印

你看,运算顺序不一样吧,所以输出的结果也不会相同。

C#的比较运算符

比较数字大小,或者比较数字相等的运算符是比较运算符。C#中的比较运算符有:

注意:表示两个值相等的“等于”是由2个“=”组成的。

比较运算的结果,都是布尔类型( bool ),bool类型我们是第一次提到,它表示逻辑上的真(成立)与假(不成立)。真与假用关键字 true 和 false 表示。

上面程序中, x>=y 不成立会返回 false , x<=y 成立,会返回 true 。运行结果:

C#的逻辑运算符(一)

逻辑运算符用来连接多个 bool 类型表达式,实现多个条件的复合判断。C#中的逻辑运算符包括:逻辑非( ! )、逻辑与( && )、逻辑或( || )。

逻辑非用来对某一个 bool 类型表达式取反,即“真变假”或“假变真”。请看下面的代码:

Console.WriteLine(1 > 0);//条件表达式为true,输出TrueConsole.WriteLine(!(1 > 0));//用逻辑非对条件表达式取反,输出False

逻辑与用来判断 2 个 bool 类型表达式是否同时为 true 。请看下面的代码:

int x = 5, y = 2;//同时声明2个int型变量并赋值Console.WriteLine(x>3 && y>3);//判断x>3和y>3是否同时为true,由于y>3为false,所以整个表达式为false

只有当&&两边的表达式均为 true 时,整个表达式才为 true ;若任意一个表达式为 false ,整个表达式即为 false 。

逻辑或用来判断2个 bool 类型表达式中是否有一个为 true 。请看下面的代码:

int x = 5, y = 2;//同时声明2个int型变量并赋值Console.WriteLine(x>3 || y>3);//判断x>3和y>3是否有一个为true,由于x>3为true,所以整个表达式为true

只要||两边的表达式有一个为 true ,整个表达式即为 true ;若两边的表达式均为 false ,整个表达式为 false 。

对比一下,就是说: && 运算符,两边同真才算真,一边为假就算假; || 运算符,一边为真即为真,两边同假才是假。

C#的逻辑运算符(二)

作为对上一节学习的巩固,这一节我们通过几个示例熟悉逻辑运算符的应用。第一个示例是关于逻辑与,比如小张想结婚,未来丈母娘开出的条件是:存款必须过10万,必须有房子,这两条少一条都不行。既然2个条件都是“必须”做到,那就需要同时满足,适合用逻辑与连接:

运行结果为:False

下一个示例是关于逻辑或,比如丽丽选择男朋友的标准,要么是“工程师”,要么是“运动员”,二者居其一即可:

运行结果为:True

C#的赋值运算符

前面,我们已经学过一个赋值运算符“=”,这次我们学习一下其他的赋值运算符:

加赋值“+=”:先加后赋值。请看下面的例子:

int x=5;
x += 2;//这句等同于x=x+2;执行后,x的值为7

减赋值“-=”:先减后赋值。请看下面的例子:

int x=5;
x -= 2;//这句等同于x=x-2;执行后,x的值为3

乘赋值“*=”:先乘后赋值。请看下面的例子:

int x=5;
x *= 2;//这句等同于x=x*2;执行后,x的值为10

除赋值“/=”:先除后赋值。请看下面的例子:

int x=5;
x /= 2;//这句等同于x=x/2;执行后,x的值为2

取余赋值“%=”:先取余后赋值。请看下面的例子:

int x=5;
x %= 2;//这句等同于x=x%2;执行后,x的值为1

与其他运算符从左向右计算不同,赋值运算符从右向左计算。

C#的运算符优先级

前面我们学习了那么多运算符,如果编程中同时使用了多个运算符,到底哪一个会先运算呢?这就是优先级的问题。C#运算符的优先级请参考下面的顺序:

①括号。学数学的时候我们就知道,要先计算括号里面的内容。C#语言也是一样,如果有多层括号,要从里向外计算。括号优先级最高。

②一元运算符。有些运算符两边有2个操作数,比如2+3、6%5等等,这些叫做二元运算符。只有一个操作数的叫做一元运算符,它们的优先级高于二元运算符。一元运算符包括:++(自加) 、 --(自减) 、 !(逻辑非)。

③*(乘)、/(除)、%(取余)。

④+(加)、-(减)。

⑤>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

⑥==(等于)、!=(不等于)。

⑦&&(逻辑与)。

⑧||(逻辑或)。

⑨赋值运算符。包括:=、+=、-=、*=、/=、%=。

另外,还需要注意一点:优先级相同的运算符从左向右计算(赋值运算符相反)。

请看下面这段代码:

bool b = 20 - (15 - 8) * 2 > 10 && (2 % 2 * 2 + 2) > 2;
Console.WriteLine(b);

分析:首先计算优先级最高的括号,(15-8)得到7,(2%2*2+2)则需要先计算%和*,后算+,结果是2,表达式就变成了:

bool b=20-7*2>10&&2>2;

接下来优先级最高的是7*2,然后是减法,变成:

bool b=6>10&&2>2;

继续计算两个大于号,得到:

bool b=false&&false;

最后的结果当然是false:

时间: 2024-10-25 21:34:36

【C#学习笔记】1.基本语法结构的相关文章

shell脚本学习笔记之常见语法结构用法

一,变量 1.变量赋值和替换 语法:variable=value variable="value1 value2" echo  $variable/$"{variable}"   屏幕上显示赋值 echo  $"{variable+b}"  将已经赋值的变量重新设值,临时生效 echo  $"{variable:=value} 屏幕上显示value(前提是value没有被赋值) echo  $"{variable:-value

Swift学习笔记:类和结构

一.类和结构的异同 类和结构有一些相似的地方,它们都可以: 1. 定义一些可以赋值的属性: 2. 定义具有功能性的方法 3. 定义下标,使用下标语法 4. 定义初始化方法来设置初始状态 5. 在原实现方法上的可扩展性 根据协议提供某一特定类别的基本功能 1. 类还有一些结构不具备的特性: 2. 类的继承性 3. 对类实例实时的类型转换 4. 析构一个类的实例使之释放空间 5. 引用计数,一个类实例可以有多个引用 1. 定义语法 struct Name{ let firstName = "&quo

Swift学习笔记(11)--类与结构体

类与结构是编程人员在代码中会经常用到的代码块.在类与结构中可以像定义常量,变量和函数一样,定义相关的属性和方法以此来实现各种功能. 和其它的编程语言不太相同的是,Swift不需要单独创建接口或者实现文件来使用类或者结构.Swift中的类或者结构可以在单文件中直接定义,一旦定义完成后,就能够被直接其它代码使用. 注意:一个类的实例一般被视作一个对象,但是在Swift中,类与结构更像是一个函数方法,在后续的章节中更多地是讲述类和结构的功能性. 1.类和结构的异同 类和结构有一些相似的地方,它们都可以

PHP:学习笔记(2)——基础语法

PHP:学习笔记(2)--基础语法 向屏幕输出 说明 1.void echo ( string $arg1 [, string $... ] ) 2.int print ( string $arg ) 注意: 1.echo.print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表. 2.输出变量的时候需要使用双引号! 3.int printf ( string $format [, mixed $args [, mixed $... ]] ) 4.strin

java之jvm学习笔记十三(jvm基本结构)

java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信.当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多.在你看完本节之后,后续我们还会来学jvm的细节,但是如果你在学习完本节的前提下去学习,再学习其他jvm的细节会事半功倍. 为了让你每一个知识点都有迹

lua学习笔记之基本语法

Lua学习笔记之基本语法 1.  赋值语句 赋值是改变一个变量的值和改变表域的最基本的方法. a = "hello".."world" t.n = t.n+1 lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会一次赋给左边的变量. a,b = 10,2*x    <-->a = 10;b = 2*x 遇到赋值语句lua会先计算右边所有的值然后再执行赋值操纵,所以我们可以这样进行交换变量的值: x,y = y,x    

2014年7月17日学习笔记--PHP的循环结构学习

今天重新开始学习PHP, 为了学习PHP买了书,但书是一本大部头的书,不好带一直没有好好学习,我决定把书拆了分章来看,这样也方便带 也可以很快完成任务. 今天在linux mint 17上安装了lnmp 环境 和brackets工具,来学PHP,小的例子用vim来完成的. 记录一下自己美化的九九乘法表 代码如下: <?php     for($i=1;$i<=9;$i++){         for($j=1;$j<=9;$j++){             if($i>=$j){

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

lua学习笔记(1)-基本语法

==============变量类型nilnumber(实数)    1 2 3.14 7.65e8string            "hello world" "\n"boolean(true false)    true falsefunction*userdata and threadstable(1)默认key初始化t = {a, "hello", b, "world"} (2)自定义key初始化t = {n1 =

学习笔记之06-点语法

前言 在Java中,我们可以通过"对象名.成员变量名"来访问对象的公共成员变量,这个就称为"点语法".比如: 1.在Student类的第2行定义了一个公共的成员变量age 1 public class Student { 2 public int age; 3 } 2.然后在第5行通过点语法直接给stu的成员变量age赋值 1 public class Test { 2 3 public static void main(String[] args) { 4 Stu