凉鞋的笔记 编程入门与框架设计 (三) 循环的力量

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

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.WriteLine(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

image

如果有帮助到您:

如果觉得本篇教程对您有帮助,不妨通过以下方式赞助笔者一下,鼓励笔者继续写出更多高质量的教程,也让更多的力量加入 QFramework 。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容