学习编写代码第三部分:数组和逻辑语句

你已经掌握了变量的基本知识,并且完成了我们课程的一半,但是你能接受数组和逻辑语句的挑战吗?你当然是。我们开始吧!...

你已经掌握了变量的基本知识,并且完成了我们课程的一半,但是你能接受数组和逻辑语句的挑战吗?你当然是。我们开始吧!

这些课程与视频配合得最好,你可以在上面看到,但我们也在下面提供参考文本。即使你确实喜欢阅读,视频也会更加明确,并演示如何完成我们正在讨论的所有事情。如果文字看起来有点太复杂,一定要看视频。

这就是事情变得更复杂的地方。没有必要被即将发生的事情吓倒,但要知道你可能会遇到挫折,因为我们今天要讨论一些更复杂但非常有用的东西。这将是初学者课程中最难(也是最长)的部分,但你可以做到。你可能只需要倒带和练习比前两课多一点。

首先,我们要学习数组。之后,我们将了解if语句和for循环,以及如何在数组中使用这些工具。

数组

Image for article titled Learn to Code Part III: Arrays and Logic Statements

数组是一种变量,但它更像是一个有一堆节的盒子。与前面讨论的简单变量不同,数组可以包含多个数据段。让我们来看看如何定义一个数组,然后我们将讨论它意味着什么。

var myArray = new Array("Lisa", "George", "Adam", "Paloma", "Jeffrey");

我刚刚创建了一个名为myArray的数组,其中包含五个名称。每个名称都用逗号分隔,每个名称都用引号括起来,因为它们是字符串(如果您忘记了字符串是什么,请参阅第一课)。正如您可能已经猜到的那样,数组对于在一个变量中存储一组类似的数据非常有用,以便于访问。有点像迷你数据库。当您想要存取阵列中的项目时,您可以按编号存取。

myArray[0]

什么是方法?

一个方法就像一个函数,只是它附加到一个变量类型上。因此,您不必像alert()那样在打开时调用它,而是将方法与变量一起调用。例如,Array.join()将获取添加了.join()的数组,并将其转换为单个字符串。不过,不要太担心函数和方法。我们明天再谈。

上面的内容将解析为Lisa,因为Lisa是数组中的第一个名字。如果将0更改为1,它将解析为Adam。如果您将一个数字放在数组中当前的项数之外(比如12),您将不会得到任何东西。

数组基本上就是这样工作的。不太难吧?你可以用数组做更多的事情(例如排序、拼接、搜索等),但我们不打算在这里讨论所有这些。如果您想跳到前面一点,看看JavaScript中的数组方法,请看这个。不过,就目前而言,这些才是你真正需要的信息。

for循环

Image for article titled Learn to Code Part III: Arrays and Logic Statements

for循环将是我们今天要处理的最复杂的事情,我们在if语句之**虑它,因为我们将使用if语句来修改它的行为。那么for循环到底是什么呢?基本上,for循环将一段代码运行指定的次数,并在运行时计算该次数。假设你是一个叫做i的数字变量(你可以假装我代表你自己,但它真的代表迭代器。)作为我,你需要跑一英里,你在四分之一英里的跑道的起跑线上。要跑完一英里,你必须绕跑道跑四圈。表示为for语句,可能如下所示:

for (i=0; i<4; i++) { run(); } Image for article titled Learn to Code Part III: Arrays and Logic Statements

让我们把它分解一下。当你说for时,你告诉计算机你在声明for语句。这应该是有道理的。这和在声明变量之前说var差不多。这是最简单的部分。复杂的部分发生在括号内。让我们分别看一下每个部分。

i=0

当您使用i&lt/在for循环中,它是一个必须声明的变量。它不仅仅是供你使用的。你可以用任何一个字母,或一系列字母。你怎么称呼这个变量其实并不重要,但传统上我是一种方法。因为您是在for循环中声明它,所以以后可以在另一个循环中重用它。这个变量是for循环的局部变量,不会与它之外的内容冲突。我们在这里要做的是将其设置为0。您不必从0开始,但在这种情况下(以及几乎所有其他使用for循环的情况下),它是有意义的。我们还没跑完几圈,所以我们从零开始。

我&lt;4.

for循环被设计成运行一堆代码,直到你告诉它停止。中间部分告诉for循环要运行多长时间。我们只想跑一英里,也就是四圈,所以我们告诉for循环,只要变量i小于4,就继续跑。如果我们想跑两英里,我们可以把它改成i&lt;8.

我++

最后一个条件非常简单:每次循环完成时将i增加1。您也可以在代码中的任何其他地方使用++或-将一个数字(分别)增加或减少1,但很可能在for循环中使用最多。这一部分非常重要,因为我们告诉for循环在我&lt/代码不再小于数字4。因为i从0开始,所以每次循环运行时需要将i递增1,否则它将永远运行。

在花括号里

大括号{}中当前有run(),但在本例中这不是一个真正的函数。基本上,你把任何你想运行的代码放在花括号里。它们只是用来切掉你想运行的特定代码。

请再来一次!

好吧,让我们再来一遍,因为它有点复杂(或者,至少,这是我第一次学的):

  • for告诉计算机我们正在定义for循环。
  • i=0将一个名为i的变量设置为0,这是我们的起点。
  • i<4告诉for循环在i不再小于数字4时停止。
  • i++告诉for循环在每次运行完指定的代码后将i递增1。
  • for循环应该运行的所有指定代码都需要放在花括号内。

让我们用它

好的,现在让我们做一个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的属性提供数组中的项数。所以,与其说我&lt;5我们只能说我&lt;myArray.length和for循环将一直运行,直到数组中的项用完为止。

你活下来了吗?如果你做到了,那主要是你需要知道的循环。上面的视频中没有更多的例子,所以如果你想看一些你可以用它们做的其他事情,一定要看看。

if语句

Image for article titled Learn to Code Part III: Arrays and Logic Statements

If语句可能是最容易理解的逻辑语句类型。它们也很强大,所以很容易上瘾。新手程序员倾向于使用if语句,因为如果你有足够的if语句,你可以做任何事情。如果你不介意在这个过程中失去理智,那是真的。你可以编写一些相当复杂的代码来操作if语句,但是你需要很多这样的语句,这会让你发疯。所以,尽管你可能会喜欢它们,但不要过度使用它们。太多的if不利于高效、好的代码。

那么什么是if语句呢?它基本上是一个语句,表示如果指定的条件为真,那么运行这段代码。它也可以用来表示,如果第一个条件不满足,那么就这样做。如果第一个条件失败,您还可以检查是否满足另一个条件。例如,如果你想洗你的狗,如果你的狗是蓝色的,你可以使用一个if语句来找出和洗狗,如果它原来是蓝色的。下面是一段代码:

if (myDog == "blue") { washDog(); } Image for article titled Learn to Code Part III: Arrays and Logic Statements

就像我们以前看到的,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上关注他。

  • 发表于 2021-07-25 08:34
  • 阅读 ( 142 )
  • 分类:互联网

你可能感兴趣的文章

for循环(for loop)和foreach循环(foreach loop)的区别

...环被改进为一个循环。它增加了代码的可读性,并且易于编写。for循环和foreach循环都用于重复一组语句,但语法不同。for循环和foreach循环的关键区别在于for循环是一种通用的控制结构,而foreach循环是一种增强的for循环,只适用...

  • 发布于 2020-10-19 07:26
  • 阅读 ( 1000 )

语法错误(syntax error)和逻辑错误(logical error)的区别

...编程语言都有特定的语法。程序员应该遵循正确的语法来编写程序。当出现语法错误时,称为语法错误。编译时发生语法错误。在运行时发生的错误称为运行时错误。数组越界、跳转为零、访问不可用的内存都是运行时错误的一...

  • 发布于 2020-10-19 09:24
  • 阅读 ( 745 )

目标c(objective c)和敏捷的(swift)的区别

...在此下载PDF版本Objective C和Swift之间的差异 引用 1.LinkedIn学习解决方案,“Objective-C教程:为什么要使用Objective-C?”?| 林达网’. YouTube,YouTube,2014年3月12日。此处提供2.O'Reilly–视频培训,“学习Swift编程教程–Swift Vs Objective-C...

  • 发布于 2020-10-19 22:48
  • 阅读 ( 357 )

你的代码能闻到!如何修复

... 在编写代码时,应该不惜一切代价避免这些所谓的“幻数”。硬编码的数字在编写时是有意义的,但是它们很快就会失去所有的意义——特别是当其他人试图维护您的代码时...

  • 发布于 2021-03-12 10:58
  • 阅读 ( 244 )

使用sql连接字符串的巧妙方法

...的方式实现特性。虽然所有这些示例都是用PostgreSQL方言编写的,但只要在web上搜索“Concatenate&amp;lt;YOUR\DATABASE\u ENGINE&amp;gt;”就可以很容易地翻译成其他变体。不同的引擎可能有不同的语法来进行连接,但原理是一样的。 ...

  • 发布于 2021-03-13 07:05
  • 阅读 ( 230 )

数组和列表在python中的工作方式

... 为了学习这些概念,你不需要提前了解很多。对编程范例和Python的基本知识将很有帮助,但这是不需要的。如果您不知道从哪里开始,请阅读我们的基本Python示例。如果您认为...

  • 发布于 2021-03-15 17:19
  • 阅读 ( 230 )

你今天应该掌握的5种javascript数组方法

...如何工作的基础。如果你不知道,没关系,我们都在这里学习和成长。 ...

  • 发布于 2021-03-18 11:00
  • 阅读 ( 223 )

如何学习c编程与这个初学者的项目

学习编程是一种积累的经验。除了学习所选语言的语法外,还必须学习所有编程语言使用的一般原则。 ...

  • 发布于 2021-03-22 14:01
  • 阅读 ( 207 )

如何使用python列表理解(以及何时不使用它们)

...这甚至是你在没有真正理解的情况下使用的东西。现在是学习的时候了,因为我们将介绍有关Python中列表理解的所有知识。 ...

  • 发布于 2021-03-24 12:24
  • 阅读 ( 229 )

如何使用python if语句

... 现实生活中的项目,如游戏开发、机器学习和web开发,都依赖于这些条件语句来实现任务自动化,允许它们为用户提供所需的输出。因此,作为一个即将到来的程序员,学习更多关于它们的知识以及它们是如何...

  • 发布于 2021-03-27 00:49
  • 阅读 ( 274 )
vzio8268
vzio8268

0 篇文章

相关推荐