0
点赞
收藏
分享

微信扫一扫

C# 一周入门之《C#-基础语法》Day Two

C#-基础语法

数据存储部分:

一、基本数据类型【含枚举、结构体】

1. 整型

  • 整型就是存储整数的类型,按照存储值的范围不同,C# 语言将整型分成了 byte 类型、short 类型、int 类型、long 类型等,并分别定义了有符号数和无符号数;区别在于有没有 u 前缀,基本上和 C语言一致
类 型取值范围
sbyte有符号数,占用1个字节,-27〜27-1
byte无符号数,占用1个字节,0〜28-1
short有符号数,占用2个字节,-215〜215-1
ushort无符号数,占用2个字节,0〜216-1
int有符号数,占用4个字节,-231〜231-1
uint无符号数,占用4个字节,0〜232-1
long有符号数,占用8个字节,-263〜263-1
ulong无符号数,占用8个字节,0〜264-1

2. 浮点型

  • 浮点型是指小数类型,浮点型在 C# 语言中共有两种,一种称为单精度浮点型,一种称为双精度浮点型。没错,就是 float 和double,你猜的没错
类 型取值范围
float单精度浮点型,占用4个字节,最多保留7位小数
double双精度浮点型,占用8个字节,最多保留16位小数

3. 字符型

  • 字符型只能存放一个字符,它占用 两个字节,能存放一个汉字;例如 ‘a’、‘中’ 等 ;使用的是 单括号括起来的;区别字符串

字符类型要注意还有转义字符;和C完全一样

转义字符等价字符
单引号
"双引号
\反斜杠
\0
\a警告(产生蜂鸣音)
\b退格
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符

4. 布尔型

布尔类型使用 bool 来声明,它只有两个值,即 truefalse
常用于判断条件里面

5. 枚举型

  • 和C语言的性质、声明完全一样;
    但是 使用的时候不需要 带enum关键字;直接使用枚举类型名就行
enum Days 
{ 
	Sun, 
	Mon, 
	Tue,
	Wed, 
	Thu, 
	Fri, 
	Sat 
}; //定义的一个星期的枚举类型

/* 使用:
Day day = Day.Sun; 即可
*/

6. 结构体

结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。和C语言的使用差不多一致,只不过不需要带关键字

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

/* 调用
-- 结构体赋值
Books Book1;
Book1.title = "C Programming";
Book1.author = "Nuha Ali";
....

* 注意结构体赋值一定要完全赋值,部分赋值会出错误、或者设置默认值也行

-- 结构体获取值
Console.WriteLine( "Book 1 title : {0}", Book1.title);
Console.WriteLine("Book 1 author : {0}", Book1.author);
....
*/

二、变量

  • 变量可以理解为存放数据的 容器,并且在将值存放到变量中时还要为变量指定数据类型。

  • 变量和常量是相对的:变量是指所存放的值是允许改变的,而常量表示存入的值不允许改变。

1、变量定义

double number;
string name;
int age, phoneNumber;
byte sex;

2、变量使用

  • 赋值:
//声明时赋值
double number = 43543.64576;
string name = "法外狂徒张三";
int age = 10, phoneNumber = 1241543;
byte sex = 1;

//其他地方赋值
name = "罗老师的张三日记";
age += 40;
phoneNumber++;
  • 读值
Console.WriteLine("number = {0}", number);
Console.WriteLine("name = {0}", name);

C#变量命名规则(命名规范)
这里推荐这个网站:http://c.biancheng.net/view/2795.html

三、常量

常量和变量都是用来存储数据的容器;常量(Constant)中存放的值不允许改变。也即是只读的

定义很简单:

  • 需要注意的是,在定义常量时必须为其赋值,因为不赋值的话以后就再也不能赋值了。另外,也可以同时定义多个常量。

使用和变量使用差不多:但是只能放在赋值号的右边

//求一个园的面积和周长
class Program
{
    static void Main(string[] args)
    {
        const double PI = 3.14;
        int r = 3;  //存放半径
        Console.WriteLine("圆的周长是:" + 2 * PI * r);
        Console.WriteLine("圆的面积是:" + PI * r * r);
    }
}

数据处理部分:

一、运算符

1. 算术运算符

运算符说 明
+对两个操作数做加法运算
-对两个操作数做减法运算
*对两个操作数做乘法运算
/对两个操作数做除法运算
%对两个操作数做取余运算
  • 当使用 / 运算符时也要注意操作数的数据类型,如果两个操作数的数据类型都为整数,那么结果相当于取整运算,不包括余数;而两个操作数中如果有一个操作数的数据类型为浮点数,那么结果则是正常的除法运算

  • 当使用 % 运算符时,如果两个操作都为整数,那么结果相当于取余数。经常使用该运算符来判断某个数是否能被其他的数整除。

2. 逻辑运算符

运算符含义说明
&&逻辑与如果运算符两边都为 True,则整个表达式为 True,否则为 False;如果左边操作数为 False,则不对右边表达式进行计算,相当于“且”的含义
逻辑或如果运算符两边有一个或两个为 True,整个表达式为 True,否则为 False;如果左边为 True,则不对右边表达式进行计算,相当于“或”的含义
!逻辑非表示和原来的逻辑相反的逻辑

3. 比较运算符

运算符说 明
==表示两边表达式运算的结果相等,注意是两个等号
!=表示两边表达式运算的结果不相等
>表示左边表达式的值大于右边表达式的值
<表示左边表达式的值小于右边表达式的值
>=表示左边表达式的值大于等于右边表达式的值
<=表示左边表达式的值小于等于右边表达式的值

4. 位运算符

运算符说 明
&按位与。两个运算数都为 1,则整个表达式为 1,否则为 0;也可以对布尔型的值进行比较,相当于“与”运算,但不是短路运算
按位或。两个运算数都为 0,则整个表达式为 0,否则为 1;也可以对布尔型的值进行比较,相当于“或”运算,但不是短路运算
~按位非。当被运算的值为 1 时,运算结果为 0;当被运算的值为 0 时,运算结果为 1。该操作符不能用于布尔型。对正整数取反,则在原来的数上加 1,然后取负数;对负整数取反,则在原来的数上加 1,然后取绝对值
^按位异或。只有运算的两位不同结果才为 1,否则为 0
<<左移。把运算符左边的操作数向左移动运算符右边指定的位数,右边因移动空出的部分 补 0
>>有符号右移。把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值,左侧因移动空出的部分补 0;如果是负值,左侧因移动空出的部分补 1
>>>无符号右移。和 >> 的移动方式一样,只是不管正负,因移动空出的部分都补 0

5. 赋值运算符

运算符说 明
=x=y,等号右边的值给等号左边的变量,即把变量 y 的值赋给变量 x
+=x+=y,等同于 x=x+y
-=x-=y,等同于 x=x-y
*=x*=y,等同于 x=x*y
/=x/=y,等同于 x=x/y
%=x%=y,等同于 x=x%y,表示求 x 除以 y 的余数
++x++ 或 ++x,等同于 x=x+1
- -x-- 或 --x,等同于 x=x-1

和C语言一样
需要注意的是,++- - 运算符放在操作数前和操作数后是有区别的,如果放在操作数前,需要先将操作数加 1 或减 1,然后再与其他操作数进行运算;如果放在操作数后,需要先与其他操作数进行运算,然后操作数自身再加 1。

6. 优先级

这个很少考虑不知道就用 ()在复杂的表达式中多用括号来控制优先级,以增强代码的可读性。

运算符结合性
.(点)、()(小括号)、[](中括号)从左到右
+ (正)、-(负)、++ (自增)、–(自减)、~(按位非)、!(逻辑非)从右到左
* (乘)、/ (除)、% (取余)从左向右
+ (加)、-(减)从左向右
<<、>>、>>>从左向右
<、<=、>、>=从左向右
==、!=从左向右
&从左向右
从左向右
^从左向右
&&从左向右
从左向右
?:从右到左
=、+=、-=、*=、/=、%=、&=、=、^=、~=、<<=、>>=、>>>=

二、条件判断

1. 三元运算符

布尔表达式 ? 表达式 1: 表达式 2

  • 布尔表达式:判断条件,它是一个结果为布尔型值的表达式。
  • 表达式 1:如果布尔表达式的值为 True,该三元运算符得到的结果就是表达式 1 的运算结果。
  • 表达式 2:如果布尔表达式的值为 False,该三元运算符得到的结果就是表达式 2 的运算结果。
1 > 2 ?  Console.WriteLine("True") :  Console.WriteLine("False")

2. if else

1. 单一 的 if 语句

if(条件)
{
	语句块
}

2. 二选一 的 if 语句

if(条件)
{
	语句块1
}else
{
	语句块2
}

3. 多选一 的 if 语句

if(条件1)
{
	语句块1
}else if(条件1)
{
	语句块2
}
....
else
{
	语句块3
}

4. 嵌套 if

if(条件)
{
	if(条件)
	{
		语句块
	}
	....
}
....
else
{
	语句块
}

3. switch case

switch是条件跳转,必须跟break不然会变成多选
C#的case和C语言的基本一致,但是C#的的更强大
switch 语句中表达式的结果必须是整型、字符串类型、字符型、布尔型等数据类型。

switch(表达式)
{
    case1:
        语句块 1;
        break;
    case2:
        语句块 2;
        break;
        ...
    default:
        语句块 n;
        break;
}

三、循环

1. for循环

for(条件 1; 条件式 2; 条件3)
{
    语句块;
}

//与C语言一致
for(int i = 0; i < 10; i++)
{
    语句块;
}

2. while循环

while(条件)
{
    语句块;
}

3. do while循环

do
{
    语句块;
}while(条件);
举报

相关推荐

0 条评论