C#入门与框架设计 (三) 循环的力量

我们来练习一下上堂课的代码:

string sayHiText = "Hello World!";
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);
Console.WriteLine(sayHiText);

看下结果:

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

好,输出了十次Hello World!,在之前,我们学习了变量和Console.WriteLine。这件事情我们做起来就比较容易了。

下面我们有了新的任务,我们想要让程序输出1000次Hello World!。

做起来的话也是很容易的,只不过要花很多时间。

比如以上的Console.WriteLine部分的十行代码,复制粘贴100次。自己还要去数100个数,比较麻烦。通过现有的知识是没法很好地完成任务的。所以我们要去学新的概念。

首先我们要为新的概念做一些准备。

我们上堂课讲了,sayHiText是一个string类型,也就是一个字符串类型。 字符串我们理解为文本。但以后我们就不叫文本了,就叫字符串类型。 sayHiText变量存储了HelloWorld的值。 除了字符串类型,其实还有其他类型。 比如整数类型

int times = 1000;

这行代码跟我们上堂课学习的string变量声明的代码结构很相似。

string sayHiText = "Hello World!";

都是前边有个类型关键字描述后边变量的类型。 times变量是int类型。int的全称叫integer,是整型的意思。 所以它可以存储的值是整数值。就是1000,因为1000是整数。 我们看下代码的输出结果。

int times = 1000;
Console.WriteLine(times);
1000

OK,到这里。

我们为什么要学习整型呢?是用来进行一个计数的操作。我们需要从0计到1000,计的这个过程我们需要进行一个加法操作。每次都要进行一个加1的操作。

加法怎么去做呢?

我们先了解一下变量的特性,代码如下

int times = 0;
Console.WriteLine(times);

第一行代码,我们读出来的话叫变量的声明并赋值。 变量声明之后,在后边的代码中不用在前边加个int了。 times声明了之后,就代表在程序里边已经有了times这个变量了。我们可以重复地去利用这个变量了。

然后我们看下一个简单的加法操作

Console.WriteLine(1 + 1);

看下结果

2

1 + 1 的话肯定就是2了。

然后我们要用一个变量来存储1 + 1的内容。 跟刚才一样,我们就用sum来存储。

int sum = 1 + 1;
Console.WriteLine(sum);

把之前代码中的1 + 1提取成变量,用sum变量来代替。 看下结果:

2

输出的结果一样的。

再介绍一个稍微难一点的运算方式。

int sum = 0;
sum = sum + 1;
sum = sum + 1;
Console.WriteLine(sum);

初始值我们默认为0。 sum = sum + 1是什么意思呢?

在程序语言里,我们的计算都是从右向左开始进行的。 在第二行代码里等号右边的sum值是0,可以翻译为 sum = 0 + 1; 也就是sum = 1; 到第三行的时候等号右边的sum值已经是上一行sum的结果,也就是是1,可以把第三行翻译为翻译为 sum = 1 + 1;也就是sum = 2; 我们来输出下结果,验证一下:

2

好,结果就是2.

所以我们的加一操作都会sum = sum + 1;这样的方式去写。 在程序语言里,我们经常会进行加一的操作。所以程序语言的设计者为此做了一些简化,简化为sum++,代码如下:

int sum = 0;
sum++;
sum++;
Console.WriteLine(sum);

看下结果:

2

好,结果和上边的一样。

除了加法我们还要在学一个比较大小操作。

再学习比较大小之前我们要介绍一个新的类型。 这个类型叫布尔(bool)类型。

bool isEqual = false;

以上这种结构的代码我们已经学习了两次了,分别是int和string类型的声明并赋值。 bool 关键字描述了isEqual变量是bool类型。 bool是什么类型呢? “真”的话在这里我们用true表示,”假”的话就用false,是用来做条件判断的。看看一个条件是否是成立的,成立的就是true,不成立的就是false。

我们看下输出的结果是什么样的。

bool isEqual = false;
Console.WriteLine(isEqual);

结果:

False

那么我们从哪里得到这个false和true的值呢?

bool isEqual = 1 == 1;
Console.WriteLine(isEqual);

两个等号代表判断两个1是否相等,如果相等则值为true,不相等则值为false。很明显1肯定等于1 ,所以isEqual的值最终是true。 1 == 1这种的叫它布尔表达式。

好我们看下结果:

True

OK,bool类型我们就学到这。

bool表达式中除了判断两个整数是否相等之外,还可以判断1是否大于2。 我们来看下代码:

bool isBigger = 1 > 2;
Console.WrinteLine(isBigger); 

很简单,我们看下结果。

False

OK,结果没问题。

准备阶段就到这里了,我们学习新的概念,叫做循环。 我们看下代码是什么样的。

for (int i = 0;i < 1000; i++)
{
     Console.WriteLine("Hello World!");
}   

功能是将Hello World执行1000次。 for (int i = 0;i < 1000; i++)这行是一个计数的过程。从0到999,总共1000次。 其中第一个分号前边的部分代码int i = 0只执行一次,对计数变量进行了初始化。第一个分号后边的代码是什么意思呢?i < 1000是一个表达式,就是我们刚才学习的bool表达式。每当执行完花括号内的代码时,都会执行一次i < 1000的代码。当这个条件为true是继续下一次循环。否则就跳出循环。 第二个分号后面的代码i++,是进行一个累加操作,它其实是i = i + 1。是当每次循环执行结束之后,会执行一次i++。

好,当第一次进入循环时,代码在计算机里是这样的。

for (int i = 0;0 < 1000; i++) i = 0
{
     Console.WriteLine("Hello World!");
}   

当i 是0时,i < 1000是true,所以满足条件可以执行循环代码。 执行完循环代码之后,进行累加操作,这时在计算机里代码是这样的。

for (int i = 0;0 < 1000; i++) i = 1
{
     Console.WriteLine("Hello World!");
}   

再之后进入下一次循环,还是先判断一次i < 1000,这时候i是1,1 < 1000是true。所以可以执行循环里的代码。 就这样一种反复,到第1000次执行完后,i的值是1000,再次进行判断i < 1000,这时候1000 < 1000就是false了。就会结束这次循环,接着执行循环结构后边的代码了。

以上四行代码已经是,本堂课的问题的解决方案了,问题是如何输出1000次Hello World。 我们看下结果

Hello World!
Hello World!
...

好本堂课的内容到这里为止,我们下堂课见。

本文为视频课程Unity 游戏框架搭建 __C#入门与框架设计:http://edu.manew.com/course/431)]的讲稿,如果觉得内容不错,可以购买课程来支持我的事业哦~,

第三课课程内容更新日志:

  • 视频:时长从15:08优化到12:54。
  • 视频:去掉了口头禅。
  • 视频:逻辑不清晰的部分进行了重新配音。

相关链接:

我的框架地址:https://github.com/liangxiegame/QFramework

QFramework&游戏框架搭建QQ交流群: 623597263 C#入门课程交流群: 609819797

转载请注明地址:凉鞋的笔记http://liangxiegame.com/

微信公众号:liangxiegame

output/凉鞋的笔记

-- EOF --


0 条评论 / 0 人参与