你已经掌握了变量的基本知识,并且完成了我们课程的一半,但是你能接受数组和逻辑语句的挑战吗?你当然是。我们开始吧!
这些课程与视频配合得最好,你可以在上面看到,但我们也在下面提供参考文本。即使你确实喜欢阅读,视频也会更加明确,并演示如何完成我们正在讨论的所有事情。如果文字看起来有点太复杂,一定要看视频。
这就是事情变得更复杂的地方。没有必要被即将发生的事情吓倒,但要知道你可能会遇到挫折,因为我们今天要讨论一些更复杂但非常有用的东西。这将是初学者课程中最难(也是最长)的部分,但你可以做到。你可能只需要倒带和练习比前两课多一点。
首先,我们要学习数组。之后,我们将了解if语句和for循环,以及如何在数组中使用这些工具。
数组是一种变量,但它更像是一个有一堆节的盒子。与前面讨论的简单变量不同,数组可以包含多个数据段。让我们来看看如何定义一个数组,然后我们将讨论它意味着什么。
var myArray = new Array("Lisa", "George", "Adam", "Paloma", "Jeffrey");我刚刚创建了一个名为myArray的数组,其中包含五个名称。每个名称都用逗号分隔,每个名称都用引号括起来,因为它们是字符串(如果您忘记了字符串是什么,请参阅第一课)。正如您可能已经猜到的那样,数组对于在一个变量中存储一组类似的数据非常有用,以便于访问。有点像迷你数据库。当您想要存取阵列中的项目时,您可以按编号存取。
myArray[0]一个方法就像一个函数,只是它附加到一个变量类型上。因此,您不必像alert()那样在打开时调用它,而是将方法与变量一起调用。例如,Array.join()将获取添加了.join()的数组,并将其转换为单个字符串。不过,不要太担心函数和方法。我们明天再谈。
上面的内容将解析为Lisa,因为Lisa是数组中的第一个名字。如果将0更改为1,它将解析为Adam。如果您将一个数字放在数组中当前的项数之外(比如12),您将不会得到任何东西。
数组基本上就是这样工作的。不太难吧?你可以用数组做更多的事情(例如排序、拼接、搜索等),但我们不打算在这里讨论所有这些。如果您想跳到前面一点,看看JavaScript中的数组方法,请看这个。不过,就目前而言,这些才是你真正需要的信息。
for循环将是我们今天要处理的最复杂的事情,我们在if语句之**虑它,因为我们将使用if语句来修改它的行为。那么for循环到底是什么呢?基本上,for循环将一段代码运行指定的次数,并在运行时计算该次数。假设你是一个叫做i的数字变量(你可以假装我代表你自己,但它真的代表迭代器。)作为我,你需要跑一英里,你在四分之一英里的跑道的起跑线上。要跑完一英里,你必须绕跑道跑四圈。表示为for语句,可能如下所示:
for (i=0; i<4; i++) { run(); }让我们把它分解一下。当你说for时,你告诉计算机你在声明for语句。这应该是有道理的。这和在声明变量之前说var差不多。这是最简单的部分。复杂的部分发生在括号内。让我们分别看一下每个部分。
当您使用i</在for循环中,它是一个必须声明的变量。它不仅仅是供你使用的。你可以用任何一个字母,或一系列字母。你怎么称呼这个变量其实并不重要,但传统上我是一种方法。因为您是在for循环中声明它,所以以后可以在另一个循环中重用它。这个变量是for循环的局部变量,不会与它之外的内容冲突。我们在这里要做的是将其设置为0。您不必从0开始,但在这种情况下(以及几乎所有其他使用for循环的情况下),它是有意义的。我们还没跑完几圈,所以我们从零开始。
for循环被设计成运行一堆代码,直到你告诉它停止。中间部分告诉for循环要运行多长时间。我们只想跑一英里,也就是四圈,所以我们告诉for循环,只要变量i小于4,就继续跑。如果我们想跑两英里,我们可以把它改成i<;8.
最后一个条件非常简单:每次循环完成时将i增加1。您也可以在代码中的任何其他地方使用++或-将一个数字(分别)增加或减少1,但很可能在for循环中使用最多。这一部分非常重要,因为我们告诉for循环在我</代码不再小于数字4。因为i从0开始,所以每次循环运行时需要将i递增1,否则它将永远运行。
大括号{}中当前有run(),但在本例中这不是一个真正的函数。基本上,你把任何你想运行的代码放在花括号里。它们只是用来切掉你想运行的特定代码。
好吧,让我们再来一遍,因为它有点复杂(或者,至少,这是我第一次学的):
好的,现在让我们做一个for循环,它在数组中循环,并提醒我们数组中的每个名称。代码应该是这样的:
for (i=0; i<5; i++) { alert(myArray[i]); }这个真实的例子应该和我们刚才分析的假例子非常相似,除了一点:myArray[i]。前面我们讨论了如何通过数字访问数组的内容,因此myArray[0]将提供与myArray[1]不同的内容。因为i是一个随着for循环运行而变化的数字,所以每次循环都会访问数组中的不同点。这样就省去了写五次代码的麻烦。
好吧,但是如果我们不知道数组的长度呢?现在我们知道有五个元素,但是如果你做了一个改变,我们要么运行循环的次数超过我们需要的次数,要么运行的次数不够。我们要做的是运行for循环,直到我们访问了整个数组。这需要一点小小的改变:
for (i=0; i<myArray.length; i++) { alert(myArray[i]); }为了简化操作,JavaScript(以及大多数使用数组的语言)在您创建的所有数组中都内置了一个属性(实际上,有很多不同的属性,但我们现在只看这个)。这个名为length的属性提供数组中的项数。所以,与其说我<;5我们只能说我<;myArray.length和for循环将一直运行,直到数组中的项用完为止。
你活下来了吗?如果你做到了,那主要是你需要知道的循环。上面的视频中没有更多的例子,所以如果你想看一些你可以用它们做的其他事情,一定要看看。
If语句可能是最容易理解的逻辑语句类型。它们也很强大,所以很容易上瘾。新手程序员倾向于使用if语句,因为如果你有足够的if语句,你可以做任何事情。如果你不介意在这个过程中失去理智,那是真的。你可以编写一些相当复杂的代码来操作if语句,但是你需要很多这样的语句,这会让你发疯。所以,尽管你可能会喜欢它们,但不要过度使用它们。太多的if不利于高效、好的代码。
那么什么是if语句呢?它基本上是一个语句,表示如果指定的条件为真,那么运行这段代码。它也可以用来表示,如果第一个条件不满足,那么就这样做。如果第一个条件失败,您还可以检查是否满足另一个条件。例如,如果你想洗你的狗,如果你的狗是蓝色的,你可以使用一个if语句来找出和洗狗,如果它原来是蓝色的。下面是一段代码:
if (myDog == "blue") { washDog(); }就像我们以前看到的,if告诉计算机我们正在声明if语句。在括号中,我们定义了条件。您将看到一个名为myDog的变量,它可能包含一个简单的信息:表示为字符串的狗的颜色。它可以是“红”或“绿”或“蓝”,但我们还不知道。为了找出答案,我们要问myDog是否等于“blue”,看看它是否真的是蓝色的。为了测试相等性,我们使用==。如果使用单个=则设置变量的值。如果使用two==则测试一个变量是否等于另一个变量,或者仅仅等于某种数据。如果dog结果是蓝色的(意味着如果满足条件并且myDog等于“blue”),那么If语句将允许运行大括号{}中的代码。在本例中,大括号内的代码是washDog();。虽然washDog()不是一个真正的函数(无论如何,现在还不是),但如果是这样的话,它可能会把你的狗的蓝色洗掉。
好吧,那么我们如何在代码中应用这个呢?好吧,这个视频将带你通过一个更复杂的例子,但我们只是要测试某人的名字。假设您在数组中包含了我的名字(Adam),并且您只希望在出现我的名字时收到警报。我们可以将for循环和if语句结合起来:
for (i=0; i<myArray.length; i++) { if (myArray[i] == "Adam") { alert("I found " + myArray[i] + " in the array!"); } }基本上,我们只是在for循环中放了一个if语句,if语句现在是询问数组中的任何位置是否等于Adam,而不是询问像myDog这样的简单变量是否等于“blue”。
明白了吗?很好!如果你上完这节课,下节课就会一帆风顺。如果您准备好了,请继续学习第4课,我们将学习函数并**一个简单的猜谜游戏。
你可以联系亚当·达奇斯,这篇文章的作者[email protected]. 你也可以在Twitter和Facebook上关注他。
...环被改进为一个循环。它增加了代码的可读性,并且易于编写。for循环和foreach循环都用于重复一组语句,但语法不同。for循环和foreach循环的关键区别在于for循环是一种通用的控制结构,而foreach循环是一种增强的for循环,只适用...
...编程语言都有特定的语法。程序员应该遵循正确的语法来编写程序。当出现语法错误时,称为语法错误。编译时发生语法错误。在运行时发生的错误称为运行时错误。数组越界、跳转为零、访问不可用的内存都是运行时错误的一...
...在此下载PDF版本Objective C和Swift之间的差异 引用 1.LinkedIn学习解决方案,“Objective-C教程:为什么要使用Objective-C?”?| 林达网’. YouTube,YouTube,2014年3月12日。此处提供2.O'Reilly–视频培训,“学习Swift编程教程–Swift Vs Objective-C...
... 在编写代码时,应该不惜一切代价避免这些所谓的“幻数”。硬编码的数字在编写时是有意义的,但是它们很快就会失去所有的意义——特别是当其他人试图维护您的代码时...
...的方式实现特性。虽然所有这些示例都是用PostgreSQL方言编写的,但只要在web上搜索“Concatenate&lt;YOUR\DATABASE\u ENGINE&gt;”就可以很容易地翻译成其他变体。不同的引擎可能有不同的语法来进行连接,但原理是一样的。 ...
... 为了学习这些概念,你不需要提前了解很多。对编程范例和Python的基本知识将很有帮助,但这是不需要的。如果您不知道从哪里开始,请阅读我们的基本Python示例。如果您认为...
...这甚至是你在没有真正理解的情况下使用的东西。现在是学习的时候了,因为我们将介绍有关Python中列表理解的所有知识。 ...
... 现实生活中的项目,如游戏开发、机器学习和web开发,都依赖于这些条件语句来实现任务自动化,允许它们为用户提供所需的输出。因此,作为一个即将到来的程序员,学习更多关于它们的知识以及它们是如何...