跟siki老师学C#第二天

今天我们学习的是C#中的一些符号,包括一些常用字符和运算符等。

首先来看一个例子:

string playerName = "马里奥";
int playerLevel = 10;
int HP = 200;
float EXP = 800.9f;

Console.WriteLine("主角的名字为{0} 主角的等级为{1} 主角的血量为{2} 主角的经验值为{3}", playerName, playerLevel, HP, EXP);
Console.ReadLine();

这个例子中用到了我们上一篇中的格式化输出。
我们看看输出结果:
跟siki老师学C#第二天_第1张图片
我们看到这一个字符串都是在一行中输出的,如果我们想让这些项目分行输出,恐怕要用四个WriteLine()方法分别输出了。

再看:

string playerName = "马里奥";
int playerLevel = 10;
int HP = 200;
float EXP = 800.9f;

 Console.WriteLine("主角的名字为{0} \n主角的等级为{1} \n主角的血量为{2} \n主角的经验值为{3}", playerName, playerLevel, HP, EXP);
Console.ReadLine();

输出结果:

我们看到,分行输出了,但是只有一个WriteLine()方法,再次比较一下,发现下面的方法多了三个”\n”,这个”\n”就是一个换行符,它是转义字符的一种。

转义字符:就是意义被转换后的字符。
如”\n”,虽然由”\”和”n”组成,但它是一个字符,本来”n”表示的是一个字母n,但是前面加了一个”\”后它的意义就发生转变了!变成了换行符,这个换行符负责将字符串换行,即使它是在双引号中,也不会被当作字符串的一部分,而是被编译器识别为换行符。
同样的,与”\n”相似的还有\”以及\t等一系列转义字符。
\”是对引号进行转义,比如我们想输出:Paul是一个“超人”!
我们不能这样输出:

Console.WriteLine("Paul是一个"超人"");

这是错误的,编译器会对引号进行配对,上面这是两个字符串:”Paul是一个”和”“空字符串,它们中间夹了一个“超人”,这是错误的格式。
这时我们就要这样输出:

Console.WriteLine("Paul是一个\"超人\"");

这里我们就告诉编译器:中间两个引号不是C#中字符串的引号,而是普通的字符,这样就可以在字符串中还能加引号。

\t是对t字符进行转义,它的作用相当于Tab键。
如:

Console.WriteLine("\tPaul是一个\"超人\"");

还有\’(单引号转义) \0(将0转义为空格) \r(回车) \(将转义字符转义为普通字符)等常用的转义字符。
转义字符都是以\开头的。

下面再来说说在字符串前面加上@字符会有什么作用:

Console.WriteLine(@"\tPaul是一个超人");

输出结果:
跟siki老师学C#第二天_第2张图片
让我们很吃惊,原本的\t水平制表符已经不起作用了,被当作字符串的一部分了,那么这就是@字符的第一个作用:字符串中的转义字符将不被识别!
这个作用我们什么时候能用得到呢?
设想这样一个前景:我要输出的一个字符串恰好是一个路径:E:\LearnForPaul\C#\Books,我们用一个普通字符串怎么输出呢?因为路径里面有转义字符,所以我们也要用转义字符来转义:

Console.WriteLine("E:\\LearnForPaul\\C#\\Books");

这样看起来很奇怪,我们索性在前面加上@字符:

Console.WriteLine(@"E:\LearnForPaul\C#\Books");

这样我们就不怕\字符是一个转义字符而产生输出错误了,因为加了@后,\就已经失去意义变成一个普通的字符了,所以正是我们想要的结果。

接下来:
跟siki老师学C#第二天_第3张图片
我们可以看到,在输出一个字符串时,字符串中间是不允许换行的,否则会报错。这是我们加上@字符:
跟siki老师学C#第二天_第4张图片
马上就正常了,这就是@字符的第二个作用:可以将一个字符串定义在多行中。

常用的转义字符我们就说到这里,下面说说运算符。
在说运算符之前我们先说说变量:前面我们介绍过变量,但是变量不是最重要的,重要的是变量的值,这个才是我们真正想要的。
变量的值叫做字面值,就是各个变量的具体数值,像true/false(作为值的时候为小写)、50、100、25.5f、29.0、Paul等都是字面值。
对于变量来说,声明出来之后我们不能直接拿它去做运算,而是要初始化。
什么叫初始化?
就是第一次给某个变量赋值就叫做初始化某一个变量。
那第二次、第三次赋值叫什么呢?当然就叫赋值了。
变量只有初始化之后才能使用。
在变量的声明时,也可以用简便的方法声明:

int a=1,b,c=2,d;

在声明的时候还可以进行初始化,但是要注意的是上面的a、b、c、d都是int类型的,也就是说用这种方法声明的变量,类型一定是相同的,不会出现a、c是int类型的,而b、d是string类型的。

变量说完后就是数值型变量的运算了。
运算也分为一元运算、二元运算和三元运算,我们先看最简单的二元运算:加、减、乘、除、求余、求模。
二元运算是说运算符前后一共有两个变量。

c=a+b;   //加法运算
c=a-b;   //减法运算
c=a*b;   //乘法运算
c=a/b;   //除法运算
c=a%b;   //求余运算也叫求模运算

这都非常简单,下面看看一元运算符:根据二元运算付,我们可以知道一元运算符就是只有一个变量的运算嘛,一开始可能会有疑问:一个变量怎么运算?其实这只是一种简写。

c++;   //自增运算 相当于:c=c+1;
c--;   //自减运算 相当于:c=c-1;

在自增和自减运算中,还要注意诸如c++与++c的区别。

int a=c++;
c--;   //为了保持c的值相同,我们在自增后再恢复初值
int b=++c;

看起来a和b都是c的自增一次后的结果,但是它们两个的值是不同的。
a是c自增加一后的值,而b是c自增加一前的值,因此它们是不同的。
同样”–”也有相同的性质。

最后来看看三元运算符:”?:”
同样的,三元运算符就涉及到三个变量。

int c=a>b?a:b;

这是一个取两个数中较大那个数的方法,这句话的意思是:a大于b吗?如果a大于b,那么c就等于a,否则的话(b大于a),c就等于b。

再来总结一下今天说了哪几个问题:

  1. 转义字符
  2. @字符的作用以及应用
  3. 变量的声明和初始化
  4. 三种运算:一元运算、二元运算和三元运算。

今天就先记录到这里,有不正确的地方欢迎大家抱着一语惊醒梦中人的想法为在下纠正,感激不尽!

你可能感兴趣的:(C#)