杰森·赫塞豪恩:欢迎。 所以,短短几年的公告 在我们开始之前。 因此部分,每个人都应该 已经切片。 部分正常运行 从周日到周二。 所以,你们应该得到你的任务。 然后我下周想 你会用你的实际转录因子。 所以,如果您有任何疑问,或 麻烦,还是你忘了节。 有些人这样做。 只是让我们知道。 拍摄我们头上的电子邮件。 然后办公时间。 我们开始办公时间的最后一周。 每周的办公时间。 星期一是在莱弗里特8:00至11:00。 周二在四, 所以卡博特8:00至11:00。 周三,马瑟8:30至11:30。 和安嫩伯格周四8:00至11:00。 所以从无到有,很多人 不需要办公时间 为帮助划痕,这 完全是罚款。 如果你这样做,这是 精绝也。 但在将来,问题 套,让他们更难。 因此,这将是你的朋友。 一定要去上班时间。 计划要去上班时间。 当你到了问题 集四,五,六,七, 你需要去办公时间。 这就是一个很大的帮助 而完成工作。 我认为,去年只为 例如,上周四night-- 所以我觉得这个问题 组上周五是由于。 于是,星期四晚上,我们将有 200,250名学生在办公时间。 所以肯定使用这些。 这些都是你最好的朋友。 像这样的地方,如果你是 停留在一个问题集, 这是你可能会得到帮助。 所以办公时间。 好让那些公告。 公告都做了,所以让我们开始。 OK,设备。 难道大家下载 家电了吗? 号 在如此如此。 种我下载的设备。 右键因此家电是新的 今年,我们很可能 将会有一些bug吧。 所以,请下载 尽可能早。 所以,问题的设置人会告诉 你到底如何下载它。 开始安装在这里。 它会告诉你如何 下载该器具。 所以肯定下载 家电宜早不宜迟。 说明在P组规格。 所以,如果你等到星期三 晚上,然后你有麻烦了, 你在向我们发送电子邮件 午夜在周三晚上 你不能下载 家电,这是 没有一个合法的理由申请延期。 你现在需要做的是, 你将有麻烦。 我试图下载昨晚。 我遇到了一点点麻烦。 如果你遇到麻烦 安装时,一定 打重试,因为我刚打重试 几次,最终它的工作, 不作任何 感,但它的作用。 所以肯定重试,但如果你 碰到一堵墙, 拍我们发一个电子邮件的头,我们将 很乐意帮助你们。 这是怎么回事? 学生:只是一个简单的问题。 如果他们检查的风格,还有一部分 是说,我们并没有包括这一点。 杰森·赫塞豪恩:还没有。 学生:它说,执行它。 你如何执行,要 确保它在你的系统中? 杰森·赫塞豪恩:你 要运行bash命令。 我去了以后。 凉爽。 因此,该设备可以是 有点吓人, 因为你习惯了那种 在图形用户界面上运行。 所以划痕是一个图形用户 接口,所以这是什么意思了吗? 我的意思是, 当你编程时, 你基本上使用的代码块。 你可以看到代码 和类似的东西。 设备上,你打算做 事情在命令行环境。 所以对于其余 你的编程生活, 你会做的事情 在命令行环境。 所以这是很好的早期跳 并获得了一定的经验。 所以,让我们开始吧。 所以这是罗布。 好了,让我们自己跳 进入命令行的东西。 因此,这是该设备。 谁能告诉我为什么 我们使用的器具? 什么是产品? 有谁知道? 这是怎么回事? 学生:这只是一个虚拟机 你运行你的机器,让你 可以在OS Mac和PC之间的分歧。 杰森·赫塞豪恩:完美。 学生:这是一个通用的模板。 杰森·赫塞豪恩:是啊,这是 就像一个万能模板。 那很完美。 所以,是的,它是一个虚拟机。 因此,它基本上是一个操作系统。 这是一个操作系统。 这等同于您的 Mac或PC你,或者你的Linux。 这是完全相同。 所以你可以做类似的东西。 如果你愿意,你可以 例如上网。 你不能真正看到它,但 在这里,谷歌Chrome浏览器。 你可以去网上,如果你想。 这是一个操作系统。 而我们之所以这样做是因为 这是当我们分发更容易 说明一切。 如果它只是一个统一的环境中, 这对我们来说容易得多, 而这对你更加容易。 你不会碰到 它碰到什么特质 当你编程。 我们知道到底是什么 你会碰到。 因此家电就在这里。 因此,当你开始 编程时,你 要深入到 左角。 有一个小盒子。 你会点击它。 这是你的终端窗口。 因此,这是你要去的地方 是很多的学期。 因此,让我放大一点点。 好了,让周围的终端 窗口是一个有点不同。 首先,有没有图标。 我无法点击任何东西。 没有什么点击。 所以你必须想出一个办法来 找出你在哪里,什么是在这里, 以及如何走动。 所以,可能是两个最有用的命令 被ls--所以你觉得LS呢? 学生:列表。 杰森·赫塞豪恩:列出,是的。 它只是列出了算法 内的目录。 然后CD。 所以我们可以说,我想 CD CS50,那是什么呢? 是吗? 学生:改变你的目录中。 杰森·赫塞豪恩:完美的,是的。 它只是改变了目录。 因此,让我们回去。 所以,我怎么回去? 因此,让我们说我想去 回到先前的目录。 对没错。 学生:我觉得你写的 CD只是没有任何东西。 杰森·赫塞豪恩:你可以做到这一点。 如此完美。 所以如果我写的CD,这是 究竟要弹出我 备份到主目录。 所以你看这个波浪线, 那将弹出我 方式备份到波浪线是。 因此,它会弹出了我 回到主目录。 但是,假设我做了这样的事情。 比方说,CD CS50。 LS了。 我有其他的东西。 CD超部分。 CD文件,所以我要去深。 再比方说,我想 只是弹回顶端。 CD。 比方说,我不想这样做。 比方说,我只是想重新弹出来 这是对我上面的目录。 我该怎么办呢? 所以我们可以说CD CS50。 CD超部分。 因此,让我们的我在这里。 比方说,我只是想 弹出一次。 我该怎么办呢? 是啊,这是怎么回事? 学生:你只需要输入 CD超部分了。 杰森·赫塞豪恩:你可以做到这一点。 好吧我在超部分。 学生:哦,对的人之前。 杰森·赫塞豪恩:是啊, 所以你能做到这一点。 你做的CD〜CS50。 所以,如果你看这里,这 是你的路径就在这里。 这就是你的路径。 所以,你可以认真 刚去的CD〜/ CS50。 咚,你在那里。 什么是更简单的方法,虽然做到这一点? 这是完全正确的,但 什么是一个稍微更简单的方法 要做到这一点,因为很多 的时候,你要去 要跳楼的目录, 跳出目录。 因此,让我们回去。 CD超部分。 所以,让我们说我想 找回真正的快。 你可以这样做CD点点。 这是怎么回事流行 您备份真正的快。 因此,CD超部分。 CD文件。 比方说,我在这里。 顺便说一下,明确是好的,因为我 窗口是越来越有点凌乱。 所以LS,所以我不想 在这儿了。 CD点点。 带我一起来。 镉点点带我一起来。 镉点点,回到我的家。 好了,CD,LS。 可能是最重要 的东西,因为你 将需要知道你在哪里。 LS是要告诉你 你在哪里,和CD 是你如何去四处跳动。 你也可以做一些其他很酷的东西。 因此,如ls。 LS只是要告诉你 该目录中的文件。 它也将告诉你该文件。 但它只是要 告诉你那里有什么。 如果你想要的东西 多一点点凉, 而你要真正做 这几个星期。 LS几许升。 打印出一 多一点的信息。 谁能猜在左手 另一边的drwx,RWX和类似的东西。 没有任何人有一个想法 什么可能呢? 学生:权限。 杰森·赫塞豪恩:是的,完美的。 权限。 所以,你要 必须处理这 当你做网络编程以后。 如果你曾经在网上消失了, 和你点击的图像 或者点击某个字段, 和它说permission-- 就像许可不准,或类似 不授予或任何许可, 这是因为当 他们在编程时,他们 没有设置这些权限 让你做到这一点。 那么,是从何而来。 好了,这很酷。 因此,我们跳下各地。 我们可以看一下东西在我们的目录中。 但是,我们如何做的东西? 我这里有目录。 这是真棒。 我如何做一个新的目录? 说我想拍一个新的 目录现在。 你可以做这样的事情,MKDIR。 因此,创建目录。 那么你想 把这个目录? 学生:真棒。 杰森·赫塞豪恩:真棒。 我喜欢它。 创建目录真棒。 和你去。 因此,我们需要一个列表。 你有一个新的目录。 你可以告诉它是一个 在您的设备目录 因为它有这个颜色的,对不对? 所以,它就像一个蓝色的 紫色或别的什么东西。 因此,让我们改变。 让我们来更改目录。 让我们进入directory-- 是啊,这是怎么回事? 学生:有没有名单 所有这些[听不清]在线? 杰森·赫塞豪恩:是啊,我把 它们on--我们将有幻灯片。 这将是一个PDF文件。 我们会把它们给大家。 是啊,对不起它的很多命令。 如果你要我慢下来,或者 回去,或者类似的东西, 一定让我知道。 这是一个很大吸纳的时候了。 这是怎么回事? 学生:我问一个 潜在愚蠢的问题? 杰森·赫塞豪恩:有 没有愚蠢的问题。 学生:有。 目录是只是看看 在信息您存储它。 杰森·赫塞豪恩:是啊。 学生:那是根本 你在做什么? 所以,当我们做的东西, 你好世界也好, 它存储在目录中,是吗? 杰森·赫塞豪恩:是啊。 学生:是这样的一切。 所有被存储在目录中。 杰森·赫塞豪恩:是啊。 每当你做了, 任何目录你在, 这将基本 将其存储在该目录中。 学生:当我们调用它, 我们从目录中调用它。 杰森·赫塞豪恩:是啊,所以 该目录是在那里上课。 因此,这有点像,如果你有 您桌面上的一个新的文件夹 然后你写的文字 文件,把它放在该文件夹中, 该文件是该文件夹中。 这是否有道理? 学生:是啊。 杰森·赫塞豪恩:是啊,这是怎么回事? 学生:我能问问你 使它成为一个大一点? 杰森·赫塞豪恩:哦,是的。 抱歉。 投影机是如此糟糕。 我们有这么大的麻烦 用这点。 是更好吗? 是太大了吗? 学生:不,不,它不是。 杰森·赫塞豪恩:不,它不是。 是不是太小了? 这是怎么回事? 学生:对不起,什么是 清理的命令? 杰森·赫塞豪恩:哦,清晰。 如果你想清楚了,只 类型清除。清晰的进入。 上的最后一个设备, 它基本上没有, 它没有明确的信息, 种它只是转移的一切 下一个屏幕。 所以,如果你输入的clear-- 例如,让我们说我滚动起来。 我可以滚动起来。 这就是我所做的一切。 但是,如果我输入清晰,然后 我向上滚动,这是我的东西。 所以它不是抹掉它,它只是 基本上是给你一个新的框架。 学生:你怎么了 [听不清]目录? 杰森·赫塞豪恩:我们会到达那里。 [笑] 放慢你滚。 行。 好了,让我们在一个 目录现在。 于是,大卫,我想在讲座 他做了一些很酷的东西。 因此,让我们写一个程序。 所以,你可以做一个 不同的方式编号。 您可以使用任何类型的文本编辑器。 您可以使用nano,你 可以用Vim,Emacs的。 那些是略微复杂一些。 或者你可以使用的东西 这里说的所谓的gedit中。 抱歉。 gedit中不开心。 所以gedit中基本上是 只是一个文本编辑器。 就像我的文字编辑字 处理器或类似的东西。 因此,它有一个很好的 接口只是这样。 所以,你做这样的事情。 所以,居然让我给它 的名字,因为我从来没有这样做。 那么你想 我们的名字的第一个程序? 它只是会说喜。 学生:[听不清]。 杰森·赫塞豪恩:你缺乏想象力。 OK,gedit中。 你好。 我会做的.txt。 好了,在这儿呢。 因此,让我们写一个程序。 所以我觉得你讲看到这个。 你需要一个main函数。 布普。 所以,这只是一个主要功能。 更大? 是啊,对不起。 OK,所以你需要一个main函数。 我想我跳楼 枪一点点, 但它永远不会坏到让 用于这种东西。 因此,一个主要功能, 每一个C程序你 打算写本作的休息 当然,将有一个主要功能。 有谁知道为什么吗? 这是怎么回事? 学生:开始。 杰森·赫塞豪恩:没错,所以它 告诉你的程序从哪里开始。 所以,如果你没有一个主要功能, 你编译这个类的东西, 它不会知道要开始。 主要是一直在那里开始。 所以,你有一个main函数,然后 有谁还记得如何打印? 学生:printf的。 杰森·赫塞豪恩:是啊,printf的。 printf的喜。 好了,现在我已经设置你们了 失败,但会在编译。 学生:没有。 杰森·赫塞豪恩:为什么呢? 有多种原因。 当然。 学生:它没有 标准[听不清]。 杰森·赫塞豪恩:完美。 所以,这是什么所谓的在这里? 学生:[听不清] 杰森·赫塞豪恩:这是 一个头文件,对不对? 这是一个头文件。 而你是完全正确的。 无论你是对的。 因此,要包括的,我只是做一斤 包括标准输入输出.H。 我是不是好走了吗? 就这样编? 学生:没有。 杰森·赫塞豪恩:为什么不呢? 学生:这是一个[听不清]文本。 杰森·赫塞豪恩:是啊,真棒。 所以,我只是做到了。 所以,我救了它,但gedit中hi.txt。 所以,现在如果我做LS,在这儿呢。 就在这里。 哦,这不是真棒。 我要出去了。 哦,完美的。 我们如何在真棒把这个? 所以,我在这里不希望它在我家 目录与一切。 我希望把它的文件夹中。 我该怎么办呢? 不要太用力。 动。 所以,我们已经学会了LS,列表。 cd切换目录。 CD点点撞出来的目录。 现在我们要 动起来的文件。 因此,移动只是移动hi.txt,并 我打算把它放在真棒。 只是小心些而已。 每当你写的 命令行,一切事宜。 所以大写的事项。 如果我做了一个小写,这是 不会知道发生了什么事情。 所以一切事宜 是非常特异性的。 所以运行LS上。 它不再是在这里。 让我们改变目录到真棒。 LS。 热潮,它的存在。 而有人提到为什么 这将无法编译。 为什么是不会重新编译? 是吗? 学生:这不是一个.C。 杰森·赫塞豪恩:完美。 这不是一个.C,S让我怎么 将其重命名为.C? 有什么简单的方法来做到这一点? 让我们使用,我们只是做了该命令。 因此,我们只是要 移动hi.txt到hi.c. LS hi.c. 然后只是为了好玩,让我们 刚跳进这个真正的快。 hi.c. 你会发现它的好和多彩。 因此,这些都是只是一种有用的 色当你编程。 因此,int和虚空, 这些是数据类型。 我们一起去了那些在第二。 喜是一个字符串。 但有用的颜色。 所以,如果你曾经不小心 选择了错误的扩展, 你应该有这些颜色。 这是怎么回事? 学生:我怎样才能复制到 文件[听不清]到另一个文件? 杰森·赫塞豪恩:哦,我 要告诉你这一点。 所以副本中删除的被告席上。 让我们这一点。 请确保它的工作原理。 让喜。 工程,运行它。 所以./hi真棒。 这是你的第一个程序。 请让我大。 所以,一个真正good--呀,这是怎么回事? 学生:为什么会 当我把gedit中, 它不给我一次 线gedit中hi.txt? 它只是把光标移动到一条线。 学生:是啊。 在[听不清]。 杰森·赫塞豪恩:等等, 如此反复说。 学生:当我键入gedit中,该 第一时间,所述第一line-- 杰森·赫塞豪恩:向上 在最高层那里? 学生:有没有Ĵ哈佛 器具,光标 只是一路向左。 杰森·赫塞豪恩:所有 路的左边? 学生:是啊。 没有任何人有吗? 杰森·赫塞豪恩:哦,Ĵ 哈佛就像用户名。 所以,这只是标准的用户名。 学生:它停止响应。 杰森·赫塞豪恩:哦, 它停止响应。 好了,你需要做的就是 你必须收出gedit中的。 这么近了gedit中的, 并且它应该返回。 那么,在gedit中打开的 家电的权利吗? 如果你退出了出来,它应该 回来,你要善于去。 做这项工作? 学生:那你有没有用 在gedit中命令open-- 杰森·赫塞豪恩:没有,第一次 gedit中的命令是一个错误。 第一个命令gedit中, 我做gedit中hi.txt。 所以我给它一个名字,那么gedit中hi.txt。 hi.txt是该文件的名称。 第一次是刚 一个错误,然后 我赶紧收出方案。 所以,问题是 如果我做gedit中,我不是 要能够真正做到 任何东西在我的命令行 直到我关闭gedit中,所以我 认为这是他们碰上了。 因此,关闭gedit中。 它会返回出来的 程序,然后你就会 能够实际键入 在命令行了。 是好? 涂料。 因此,只要确保关闭 它,如果你遇到麻烦。 好了,一个很好的问题 一秒钟前被复制。 所以,现在我已经hi.c. 但是,让我们说,我想改变它。 我希望它是略胜一筹。 我想说的喜类。 不过,我想保持这个模板。 我没有重写 再整个程序。 我想保持的模板。 如何复制? 容易。 因此,CP hi.c newhi.c。 现在我有两个。 然后我可以打开newhi.c, 而不是只是说喜, 我会说你好一流! 所以,我会回去。 退出了。 回到我的命令行。 LS使newhi。 运行它。 那里。 这是更好,更好。 所以,如果你要复制的东西, 简单的作为。 CP是副本。 所以,我们已经讨论了移动, 制作目录,复制。 让我们来看看还有什么我应该去了? 哦,是的。 我们走了这一点。 因此,这是真棒。 比方说,我想to--哦,等等。 我要重新回到真棒。 比方说,我不想要 这些文件就在这里。 比方说,我希望他们在新的 目录如同目录真棒。 我要开始举办, 所以现在我要去 有一个叫喜新目录。 它有所有的程序 我写所谓的喜。 那么,如何才能做到这一点? 学生:改变目录。 杰森·赫塞豪恩:是啊。 喜。 布普。 MKDIR hi_dir。 它抱怨,因为我 已经有一个喜在这里。 所以,现在我有一个喜目录。 所以现在我想移动的一切, 所有的节目我写的, 我想移动至 到喜目录。 只是干净的东西了。 我该怎么办呢? 学生:[听不清]。 杰森·赫塞豪恩:移动它,对不对? 所以,让我们继续前进。 是吗? 学生:有什么的区别 喜hi.c,我们已经有了。 杰森·赫塞豪恩:哦, hi.c是实际的。 所以这是你写的文件。 所以,如果你要 在gedit中或纳米打开它, 这就是你输入的是什么。 当你编译它,然后 你会得到一个可执行文件。 这是喜。 所以,如果你打开​​了喜,这是怎么回事 是一堆乱码给你。 这基本上将是 一群计算机指令。 这是怎么回事? 学生:怎么所有的颜色是什么意思? 蓝色可能是目录。 什么是黄色? 杰森·赫塞豪恩:那些 是可执行文件。 因此,当我没做hi.c,它 给了我 - 这样我就可以做到这一点。 偷步。 所以,除去喜是肯定的。 那么接下来让我们做LS。 我没有喜了。 当你的话,那就是当你 带你写的程序 你让一个可执行文件。 因此,请hi.c--好,让喜。 我想他去了这个讲座。 这些都是一堆 编译器指令。 因此,有代替实际 写的所有这些铛。 这些都是标志。 你只写做。 所以这使得可执行文件。 所以,当你做LS,你现在有高科技。 因此,这是你在做什么 要真正运行。 所以你运行做 ./hi,它运行你的程序。 但是,如果我尝试这样做,与 hi.c,不,是行不通的。 是啊,这是否有意义? 学生:嗯。 杰森·赫塞豪恩:酷。 等等,我想说点别的。 只是真正的快,万一 有人有兴趣, 当你跳出一个 目录,它的点点。 没有任何人有一个想法是什么 也许只是奇异点的方法呢? 学生:[听不清]。 杰森·赫塞豪恩:这是 实际上当前目录。 所以这是你的当前目录。 所以,我在这里。 我在真棒。 如果我做CD的点,它不会做任何事情。 它带我到我的当前目录。 所以有点多余,但你必须 要做到这一点,那么你./程序名, 为了运行 程序,你必须这样做。 行。 学生:如果你的CD点 点点,然而,许多小点 将它只是带你 许多目录? 杰森·赫塞豪恩:你的意思是 如CD点点点点? 学生:是啊。 杰森·赫塞豪恩:第 因此,实际上还记得我当时的ls -l? 如果我做别的事情,我可以宋体表示。 那么,这说的是-a 显示你的一切。 所以,它表明你的东西都是 隐藏和非隐藏的东西。 所以,如果你发现,当我这样做 只是LS,我刚才看到的东西, 的东西,我做了。 如果我做-a,这是怎么回事 给我的一切。 因此当前目录, 目录上面。 这是否有道理? 是吗? 学生:但是这些都不是 实际上,在目录中。 当前目录本身不是, 那么为什么显示这些里面点? 杰森·赫塞豪恩:你的意思是 好像这不是在目录中。 学生:对。 因此,我们对事物的清单 是在目录中。 JASON赫塞豪恩:我认为 它是在目录中。 像-a显示所有内容,即使 它是隐藏的目录中。 所以,我认为这只是给一个路线 如果是有道理的当前目录。 这是一个有点递归。 这就像盗梦空间。 这是怎么回事? 学生:所以你说 -a显示[听不清]? 杰森·赫塞豪恩:-a,是的。 学生:是什么使得它[听不清]? 杰森·赫塞豪恩:嗯,比如说, 让我们回到了顶端。 它通常的东西,你不应该惹 有和你不需要担心。 因此,这是一种家的。 如果我做-a,我得到吨的东西。 所有的东西。 而且你不需要乱七八糟 与任何东西。 绝对不打算启动 在这里,只是删除的东西。 [笑] 是啊,这是多一点点 舒适的东西,但它是很好的了解。 我认为这是很好的了解。 但是,如果你从来没有想要键入-a 本课程的全部, 忘掉它。 这是怎么回事? 学生:什么是ls -l命令? 杰森·赫塞豪恩:那 显示你的权限。 基本上你使用 对于权限,因此-l。 它显示了你一个小 更多的信息, 但是同样,这是一个小 位更舒适的东西。 这些只是权限。 该文件夹,这样的权限。 所以刚才例如,让我们说我做了一个 文件夹,所以d表示目录。 因此,那些是目录。 然后读,写,执行。 因此,这些都是为权限 我觉得用户,组世界。 共过犹不及。 你要往这个样 周从现在开始,只是让你知道, 那些权限。 这是怎么回事? 学生:你能明确的,而不是 刚刚跳过接下来的事情,可以你 - 杰森·赫塞豪恩:你 意思是真正的删除? 我不知道。 我从来没有做到这一点。 为什么你要这么做? 你为什么要那样做? 我喜欢它。 你生活在边缘。 你就像我不希望任何这一点。 这是激烈的。 学生:[听不清]。 杰森·赫塞豪恩:是的,我们能做到这一点。 很抱歉,配合尺寸是搞乱 完全吓到我了现在。 让我们上去。 是啊,所以现在我不能上去了。 所以一切我教 您已经一去不复返了。 谢谢。 我们做我们的目录。 我们做了我们的文件之类的东西 这一点,所以我们仍然有所有的东西。 OK,我会走的快。 所以,真正的快速。 因此,让我们说我在真棒。 比方说,我想提出 一切新目录 因为我只是想 组织,不是吗? 所以,我会怎样做。 动。 大家正打算再次使用招。 因此,移动hi.c. 而你所能做的就是 你开始上市的东西, 你列出的最后一件事是 在那里它会移动。 所以移动hi.c,喜newhi newhi.c,hi_dir。 因此,这一切都感动到 最后一件事,你提到的。 所以后来更改目录,hi_dir LS。 一切都在那里。 所以这是很好的和更有条理。 OK,让我们说我恨 我原来喜程序。 我想摆脱它。 我该如何摆脱它? 这是怎么回事? 学生:[听不清]。 杰森·赫塞豪恩:比方说,我只是 要删除的程序,所以才喜。 不,你说得对。 所以它的RM,但你做的RM喜。 这将会给你一个小小的警告。 它会说你确定 要删除这一点,是我做的。 如果你不希望 提示这样的 因为你没有时间 为警告,删除-f。 这是另一个标志。 这就像-l。 这就像-a。 这些只是标志,用于 你给了这些命令。 所以,删除-f。 -f f为力。 所以迫使它。 我不想被提示。 所以,删除-f。 让我们做hi.c. 刚刚摆脱它。 它没有告诉我。 但是,假设,而不是我 这个目录来完成。 我想摆脱目录。 所以我删除hi_dir。 不,那是行不通的。 没有,所以它不会让 我删除一个目录。 没有任何人有一个想法? 学生:是不是删除目录? 杰森·赫塞豪恩:所以去掉这个样子? 学生:没有。 就在[听不清]。 杰森·赫塞豪恩:不, 现在有没有喜。 这里还有hi_dir。 因此,这是该目录。 所以实际上,你想要做什么 is--哦,你有一个想法? 我看像一个半手。 学生:[听不清]。 杰森·赫塞豪恩:OK。 学生:[听不清]。 杰森·赫塞豪恩:OK。 所以,如果我想删除 一个目录,删除-r。 这是递归的。 所以,删除该目录递归。 所以,我希望你能进入该目录, 在目录中删除了一切, 然后摆脱的目录。 然后我要去 还有,因为I F 不希望它有警告提示我 后它会删除每一个文件。 因此,除去-rf hi_dir。 热潮,它的消失。 在您使用的只是小心些而已。 我要使用它 这里也。 -rf真棒。 它的消失。 在您使用要小心。 如果您使用的是,这里并键入一些 就是这样,永远不要做。 这将删除你的一切 家电没有警告过你。 我已经做到了。 分级习题上午4:00,我 想要删除的问题设置目录, 而我这样做。 我很喜欢哦,我的上帝。 不要do--我试着取消它。 您可以取消。 指令C只是取消了一切, 但我已经删除了一样的75%。 所以,我毁了它。 人们做到这一点。 每个人都这样做了。 不,虽然这学期做到这一点。 它吮吸。 我很紧张在这里有它。 我要删除它。 [笑] 你能想象吗? OK,问题。 是吗? 学生:所以如果我们所做的一切 你在这里做什么,这是相同的 作为刚刚进入实际 文件另存为[听不清]。 杰森·赫塞豪恩:哦, 你通过gedit中的意思。 学生:是啊。 杰森·赫塞豪恩:是啊这是。 gedit中是有用的。 所以gedit中是非常有用的。 在这个类中,你可以做一个 很多事情通过gedit中。 您可以保存。 你可以重命名。 您可以将文件之类的东西, 但是当你去只是如实50-- 以及你在50-- 51,如果你去 到61,这将是你的生活。 这是命令行。 这是在那里你会编程 为你的余生, 所以肯定用gedit,如果你想要的。 这绝对是一个很好的方式开始。 对于第一个问题集,绝对 用,但每过一段时间 尽量获得更多的使用更舒适 用命令行参数。 但是你可以,​​绝对。 这是怎么回事? 学生:所以当我们要删除 我们已经取得的文件之一, 有两种方法。 [听不清]。 在那里,当你的方式 删除一个目录 索要提示,以便您 最终不会删除它? 杰森·赫塞豪恩:RM -r。 所以,不要强迫它。 所以,RM -r。 这将通过递归, 删除一切,提示您 之后的一切,这 将推动你疯了。 就像我几乎完全做到RM -f和rm -rf,只是不断。 我很喜欢我没有时间。 我是个大忙人。 好吧,这是怎么回事? 是啊。 学生:有没有撤消,或 垃圾桶,或类似的东西? 杰森·赫塞豪恩:第 [笑] 我可以回去,让我 我刚刚删除设备,没有。 不,不,不。 如果你这样做的RM,应该走了。 这是怎么回事? 学生:所以,你可以 [听不清]在一起。 杰森·赫塞豪恩:是啊,就是这样。 因此,例如,你看到的命令rm -rf。 比方说,我想 做LS -la,它让我 一切,甚至隐藏 东西与他们的权限。 学生:所以后来R,使用-r 标志,如果我们没有这方面的, 我们不能删除一个目录,对不对? 杰森·赫塞豪恩:对。 学生:所以说,我们要 做一些与目录? 那是什么意思? 杰森·赫塞豪恩:-r递归手段。 所以一个目录将要 它有文件,对不对? 所以,你想要做什么,你 要进入该目录, 删除一切,所有的 在该目录中的文件, 然后弹出删除 实际的目录。 所以-r递归手段,做到这一点 所有的递归如果是有道理的。 是啊。 学生:所以目录有 [听不清],并删除它。 还是你still-- 杰森·赫塞豪恩:我们来试试。 所以MKDIR空。 删除空。 号 学生:没有,所以你仍然需要the-- 杰森·赫塞豪恩:是啊,总是这样。 所以-r,-rf,空。 真棒。 了问题吗? 我认为这是你的崩溃 当然,在命令行的东西。 如有任何问题,因为我们要 跳转过来的数据类型和循环, 和所有的东西? 这是怎么回事? 学生:我没有CS50 显示作为我的目录之一。 是正常的吗? 杰森·赫塞豪恩:哦,是的。 这是我的。 是啊,这就是我的 解决方案要你的东西是。 [笑] 所以,是的,这是完全正常的。 我想你可能会 只是有这四种。 我认为这可能是正常的。 是啊。 好了,任何问题? 我知道这是超级快。 这是怎么回事? 学生:我看到了蓝绿色。 那是什么? 杰森·赫塞豪恩:这意味着目录。 学生:这是蓝色的? 杰森·赫塞豪恩:哦, 你的意思是这个蓝色的绿色的吗? 学生:没有。 杰森·赫塞豪恩:这个蓝绿色的吗? 学生:没有。 当你listed-- 杰森·赫塞豪恩:哦。 像这样? 学生:是的,这些图标。 杰森·赫塞豪恩:哦,这个。 我不知道。 这意味着什么? 因此,它似乎是 指向一个目录。 学生:它几乎看起来像一个别名。 杰森·赫塞豪恩:可能是。 你不需要知道。 了问题吗? 真棒。 如果您有任何问题, 我知道这是一个很大。 很多这种信息 会上网。 我把它放到网上供你们。 B节将在线为好。 或者,如果你有任何问题, 刚上来,问我。 干得好。 所以,现在沙龙 汉娜去了一些 问题背后的逻辑设定之一。 雪伦:哦,我的上帝。 烦恼。 汉娜:在此期间,我是汉娜。 这是沙龙。 我们都是CS50转录因子,并 我们要去给你 一对夫妇重要的一点介绍 事情的问题集之一。 从数据类型的一切 以条件语句为循环。 回路中一般。 夏伦:而在最后,我们 将看看P集之一, 要知道你有什么吧。 因此,让我们先从数据类型。 你们应该熟悉 那些以蓝色突出显示。 因此,我们可以用整数的开始。 int为整数,因此一个,两个, 三,四。浮筒,浮动点。 像带有小数的整数, 所以5.2甚至5.0。 字符都像A,B,C字符 和一个字符串,你们都知道。 像CS50或hello和world。 布尔是一个布尔值,所以我们有 真假作为我们的布尔值。 因此,如果计算的东西来truth-- 5等于5中,计算为true时, 如果我们有5等于4,这是 假的,这样计算为false。 在这里,我们有相关的 所有这些数据类型的大小。 你必须知道 这对你的测验, 所以这可能是有用的 记住,但我们会发布这些。 其实他们已经发布。 所以,你应该熟悉 以蓝色突出显示的人。 杰森·赫塞豪恩:房地产 很快,万一你 想知道其中的差别 之间的字符和字符串。 所以,当你写的东西, 只要你有类似“喜” 那将是一个字符串。 因此,如果有两个 报价,这是一个字符串。 但如果我是一个“H” 这样,这是一个字符串。 但是,如果我只有一个 报价,这是一个字符。 所以有什么 区别你可能会问。 好了,所不同的是 这是存储器的一个字节。 这是4个字节的存储器。 夏伦:浮动? 又形容呢? 好吧,这有点像一些 具有小数点有了它, 所以5.2甚至5.0是一个浮点数 与仅有5是一个int。 学生:[听不清]。 雪伦:哦,它可以有很多 小数点,所以5.675至3.1415。 是吗? 学生:我们需要知道的 所有的大小呢? 夏伦:是的。 学生:[听不清]。 夏伦:你不担心 在白色的,只是还没有。 汉娜:本笔记 张贴在CS50.net/sections。 学生:刚出来的 好奇,有没有效用 要知道你的文件的大小 调用,这样我们应该知道吗? 夏伦:所以这些都是 数据类型,但肯定的。 所以在这种情况下,其中一个会 占用更多的内存或更多的空间? 杰森·赫塞豪恩:所以 对于一个具体的例子, 在我认为,问题集 四,五,我们 去给你一串 的数据,而你基本上 必须遍历该数据。 因此,它是有用的知道, 如果你有这么多的整数, 这将是什么。 因此,让我们说,我给你10 整数,什么是对的大小? 学生:40。 杰森·赫塞豪恩:40字节,右。 所以,你可能需要知道 OK,我要跳40个字节。 所以我们说,而不是它的40个字符, then--比方说,我给你10个字符, 那么你知道,行,我只 需要跳10个字节。 所以这是非常有用的了解 实际的数据类型的大小, 因为很多时候,你会 跳来跳去的数据, 所以,你需要知道如何远跳。 学生:有什么区别 引号和一个单引号之间? 杰森·赫塞豪恩:OK, 两个单引号是一个字符串。 一个单引号是一个char。 学生:像操作上, 有什么区别? 他们都打招呼。 杰森·赫塞豪恩:哦,对不起。 这只是小时。 遗憾,这是不明确的。 学生:所以顶部埃德蒙顿 杰森·赫塞豪恩:这 是一个字符串,是的。 因此,这两个人物,对不对? 字符串,喜。 但让我们说我只 有一个单一的字符, 如果我把两个引号 刚小时,这是一个字符串。 这是一个字符串小时。 这是否有道理? 因此,这是四个字节。 但是,假设我摆脱 那是只放一。 一个单引号。 现在这是一个字符,一个字符小时。 所以,同样的事情, 不同的数据类型。 这仅仅是一个字节,而 该字符串是四个字节。 是啊。 学生:所以,如果你试图 存储一个字像大卫, 你想用一个字符串,因为 无论线是多长, 它只会占用4个字节 除非这是一个很长很长 或双,其中case--因此,如果它 超出四个大字,然后 你想让它变成字符串。 就是一般的逻辑背后。 杰森·赫塞豪恩:若延续 超过一个字符,它是一个字符串。 学生:那么有没有[听不清] 以存储四个字母 字为四个单独或三字母 字作为三个独立的字符 因为这将只有3个字节, 相对于这三个部分的字符串。 杰森·赫塞豪恩:你可以做到这一点。 你可以这样做,但我不 认为这是真正有价值的, 因为你只保存一个字节。 你知道我在说什么? 在物联网的大计划, 不会真的无所谓。 但是,例如,printf的,如果 你打印F和你 有三个字符,你可以打印 这out--让我们说你C-A-T, 你可以通过打印出猫 做一个字符一个字符一个字符, 或者你可以打印出来的字符串猫。 这是同样的事情。 所以,你可以做到这一点像,但 - 学生:它不会 为您节省这么多。 杰森·赫塞豪恩:是啊。 头痛,这将 诱导是不值得的。 是吗? 学生:例如, 你有轰一个 对二,单引号或双引号。 为什么要保存 一个字母的字符串。 它是有史以来的目的是什么? JASON赫塞豪恩:我不知道。 我的意思是,它真的 取决于程序。 举例来说,我觉得以后 你会进入命令行的东西, 因此,例如,代替我 问你一个integer--抱歉, 我可以对着你? 汉娜:是的。 杰森·赫塞豪恩:所以 例如,代替 我问的东西 以get结束,这 我想你可能已经看到了一个讲座, 有可能是一个命令行。 您只需键入它在命令行中。 这会是怎样的 - / hello4或 东西,或者helloh小时,等等。 你在命令行做 而不是被要求的话, 该命令行总是一个 字符串,无论是四或H, 这始终是一个字符串。 所以这是一个例子,当你可能 有一个单一的字母或一个奇异的 号表示为一个字符串。 雪伦:好吧。 然后这里有一些基本的运营商。 希望你熟悉 第4只是一般。 因此,有加,减, 乘,除, 并确保你使用 正确的按键。 然后还有模,其中一些 你可能不是很熟悉。 什么模做的是, 如果我们把这个例子4%2, 所花费的剩余 在不分裂是什么。 所以4除以2是2, 而且也没有剩下。 4除以3为1, 1/3,所以剩下的1。 所以它计算到1。 然后4%5是分数 4/5,并且余数是​​4。 这是否有道理? OK,爽。 我们遵循PEMDAS这里。 因此,一些布尔表达式。 所以,你们已经看到了等于等号 进行比较,也就是说,两个数字。 所以,如果5等于等于5, 其计算为true。 请确保你只有一个等号。 对于不等于,它的 嘭或感叹号。 汉娜:两个等号 当你做平等。 雪伦:哦,是的。 请确保你不 有一个等号。 然后不等于, 它的爆炸平等的。 然后你可以去翻 对于小于,大于。 然后我们有逻辑性 和逻辑或就在这里。 和什么一样,如果 你还记得刮 当你有这样的块 这和说,然后你 可以容纳两个不同的部分 有,这就是这一点,确实。 并确保你做两&符号。 而这个键就可以找到对 没错,就在你的删除按钮。 问题? 学生:什么是[听不清]? 雪伦:好吧,如果你只做 1,你在比较的位。 所以,如果你还记得什么位 是,它们是0和1的等 这是比较别的东西。 所以,我们要关注这个现在。 杰森·赫塞豪恩:所以一等于 就像赋值,对不对? 因此,如int x等于4。 你是说那个变量x等于4。 所以1等于就是分配, 但阿富汗国家发展战略和管 或酒吧,就像沙龙 说,他们是按位运算符。 你不必担心。 学生:如果你使用的逻辑 与和逻辑或再次? 只是我忘了当你做到这一点。 汉娜:当然,如果你想 检查两个东西都是真实的, 例如,让我们说我要检查 一个数是5至15, 我想说确保 的数量大于5。 所以我们可以说,如果X大于 大于5且小于15。 因此,为了使该全 语句来计算为true, 你既需要那种子的 语句来评价真。 或你只需要 所述两个或两个。 学生:太好了,谢谢你。 夏伦:同时在刮,我 请务必在很多的项目 你如果有接触的边缘,或者 接触到另一个精灵则反弹 什么的。 汉娜:好吧,那么我们为什么 关心这些布尔变量? 我们有你所这些结构 可见划痕称为条件语句。 而条件的任何东西 如果形成某种条件或某种布尔 是真实的,然后做代码 这些大括号之间。 所以,你可以在右边看到 这里是划痕块。 你有这样的,如果再和任何 即进入那个小的形状, 貌似this--我 不知道你会 叫that--那将 是布尔值或条件。 如此反复,一个布尔或 条件是什么 要么计算结果为true或false。 再次,你可以结合布尔值。 可以有,同样,x是大于 大于5且x是小于15。 或者你可以有一个 那些x的是小于5。 好了,在C中它的左边。 这是否仅仅是关键字。 在括号中, 条件或布尔。 然后在之间的代码 这两个大括号 将只执行,如果将只运行 该条件或布尔值是真。 这是否有道理? 真棒。 行。 然后,你可以 已经看到了从无到有, 我们还可以添加上 否则,这基本上是 之间的任何东西 在其他大括号 如果将只执行 条件为假。 有意义吗? 关于这两个问题吗? 真棒。 凉爽。 所以这里有一个简单的例子。 比方说,我们要 确定,根据该时间, 我们是否应该说不错 早晨或晚上好。 我会说,如果是中午12点前, 我们要早安说, 否则,我们将 说好晚上。 当我说,否则, 这是在C这个别的等价的。 所以,我们要检查 军事时间小于12时, 说早上好。 否则,说好晚上。 学生:所以我们就真正得到了输入 对于用get字符串军用时间。 汉娜:对。 难道别的地方,我们其实倒是 必须提供该信息。 在这里它没有价值。 我们甚至从来没有宣称它。 我认为上面的某个地方 这个节目,我宣布的时候, 或问时间,or-- 什么都用这个例子吗? 真棒。 好了,现在我们已经在另外 以简单的if else格式, 我们有两个不同的结构。 因此,首先我们有开关 语句,这里的 switch语句的一般形式。 您的关键字是切换 同样的方式,你如果有关键字。 然后一个输入端,在此当n。 所以这个只能用整数的工作。 使输入n具有 是一个整数,好不好? 而我们要 请执行下列情形之一 这取决于该值,n为。 因此,在这种情况下,你首先比较 为n等于常数1, 如果是,尽一切 种缩进在这里。 我可以指向它,因为我太矮了。 如果它不等于常数1 并且是代替等于常数2, 我们要遵循的第二块, 我们可以尽可能多的时间做到这一点 因为我们想要的,那么默认的是,如果 它不符合上述任何情况下, 执行该代码。 这里有什么问题吗? 这个人是有点复杂。 是吗? 学生:休息标志着什么? 汉娜:当然,所以一旦我们进入 该块,如果发现,我们说, 我们的n为实际上等于常数1, 我们进入结肠后,该块。 我们做什么是 该行注释的, 然后我们分手,这意味着我们走出 这个switch语句的全部。 学生:OK。 汉娜:嗯? 学生:是的压痕 必要时,或者你需要[听不清]? 汉娜:当然。 所以,一如既往,压痕 不是严格必需的。 电脑不 不管你缩进。 我们作为人谁是 阅读你的代码,做护理。 所以这是一个更容易 抬头看屏幕 看看,哦,我知道到底是什么 当n等于常数发生对象。 如果我有随机的缩进,我 也不能这么容易分辨。 是吗? 学生:所以,如果想让用户 在选项中选择一个 我们的名单上,将 我们使用,我想,[听不清] 但得到一个整数 他们把那成n? 汉娜:完全正确。 所以我们可以说,我们希望 检查什么的整数。 我们说,哦,输入一个整数 介于0和5,让我们说。 我们可以要求该 N,要求该值, 然后让每个这样的情况。 再次,这是后话,我们可以 与if语句很容易做到, 对不对? 我们可以有,如果等于区分 1,如果等于案例二, 如果等于案例三, 等,等等。 这是一个有点快 和少许清洁剂。 这是一种一个不错的结构了。 学生:快如以书面形式? 抑或是运行 电脑快一点? 汉娜:它运行快一点。 是吗? 学生:所以双 破折号只是评论or-- 汉娜:哦,我很抱歉。 我不指出这一点。 OK,如果你有//,是一条评论。 刚//是一条评论。 所以,任何时候电脑 看到这,这是怎么回事 说的好,什么都遵循 这一点,我只是忽视。 我会假装你 甚至从来没有写到。 学生:所以这个[听不清]。 汉娜:这确实绝对没有。 但是,如果我写的东西像上 第一个评论我写的,而不是printf的 说你输入的祝贺 定一个,那会是什么。 是吗? 学生:所以在现实生活中, 情况下也只是简单的一个数字 然后[听不清] 将是另一个整数。 汉娜:没错。 学生:那你需要的省略号? 汉娜:对不起? 学生:你需要的是什么? 汉娜:哦,不。 对不起。 这只是为了说明,你可以 只要你想继续为尽可能多的情况下。 让我们做一个具体的例子, 可能使事情变得更加清晰。 好了,让我们说,我说, OK,给我一个整数n 代表一个类号, 特别是计算机科学类 数。 所以,如果你给我50, 我要说伟大的。 CS50是一本介绍计算机 学,然后我要去打破。 因此,这意味着我跳出 这整个switch语句, 所以现在我做运行的代码,好不好? 如果你给了我,而不是51,我最好 打印的第二条语句。 然后,如果你给了我一些 数量不是50或51, 我会说对不起,我 不熟悉这个类。 是吗? 学生:你没有休息。 汉娜:对不起,我没有休息? 学生:如果什么。 汉娜:哦,如果有什么 你没有突破? 非常好的问题。 那么会发生什么,你是会去的, 你会检查我是等于50? 让我们说,是的,你是平等的 50,你打印的声明。 然后你会继续执行, 所以你会说我是等于51? 你会去走 通过这样的每一个案件? 是吗? 学生:是默认的行 类似于说别的吗? 汉娜:没错。 挺好。 这就像那种抓所有。 学生:所以,如果你没有休息 再一个case语句 是真的,然后将其 说增加n乘1, 然后它会自动 做下一个。 它会检查的情况下51,和 然后显示呢? 汉娜:是的,我认为这是可行的。 种这样你就可以得到凌乱,所以 休息是一件好事,有。 是吗? 学生:不休息 它会做的默认? 汉娜:这是一个很好的问题。 JASON赫塞豪恩:我认为它只是运行。 所以,如果你没有break--这样 比方说,我做了50和它签50, 它会打印出来。 打印出CS50的介绍 计算机科学。 你没有突破,就应该去 并保持下去,直到它击中休息。 所以,如果没有突破, 它会继续下去。 这将打印一切了。 汉娜:所以我想这将 是包括默认。 杰森·赫塞豪恩:是啊。 汉娜:好问题。 是吗? 学生:是的情况下被认为是功能? 汉娜:对不起? 学生:是的情况下被认为是功能? 汉娜:是的情况下考虑的功能。 我会毫不犹豫地说。 杰森·赫塞豪恩:所以一般 当你看到功能 他们将在大括号。 因此,例如,当你看 在你的代码,例如,主。 这是主要的开放括号, 那么无效,关闭括号。 Functions--,他们基本上 你总是会看到括号。 如果情况不那么情况 有括号, 这是你的线索, 这不是一个函数。 但事实并非如此。 是吗? 学生:所以后来做了 使切换功能? 汉娜:是否使 切换的功能。 学生:在这个意义上 你把东西, 它给你的案例之一。 JASON赫塞豪恩:我 不会把它的功能。 不是一切与 括号是一个函数。 我的意思是,这是一个线索 它是一个函数。 我不会说开关是 功能,因为它不是真正的 返回任何东西。 你会惹上更多。 汉娜:是啊,只是觉得 它作为一个if结构。 学生:你能巢 这在if结构? 汉娜:是啊,你窝 几乎任何东西。 学生:巴里说报价 是有点像一样的东西。 所以,你可以替换其他引号? 汉娜:不是在这个特殊的 结构,因为开关 声明期待Word默认。 计算机知道默认 意味着一些特别的东西,那 是指渔获所有。 什么都在这。 我们有一个更打通。 是吗? 学生:[听不清]。 汉娜:区别 使用分号和冒号。 所以分号总是告诉 计算机,我做这一行。 您可以继续执行。 这是一个完整的线。 冒号去,在这种情况下, 带你进入一个特定的块。 所以分号 始终使用结束行。 冒号用于 其他各种情况。 学生:这是相当于 只是说,如果n等于50,则 等等等等等等。 汉娜:嗯。 学生:这是一样的[听不清]。 汉娜:没错。 我们说,它运行快一点点。 如果我们没有足够的休息, 这将是一样,如果,如​​果,如​​果。 如果我们确实有突破,这是 否则的话,如果还有其他​​的话,如果像。 酷? 杰森·赫塞豪恩:所以当 编码,你可以用别人的话, 但我认为去年的测验我们 让他们写一个switch语句, 所以以防万一。 汉娜:但是肯定没有错。 我们并不期待您的后顾之忧 关于性能疯狂的事情。 只是,如果其他人是完全的罚款。 这些都是刚刚好 事情要做到心中有数。 下面是我们的最后一个种 在此条件类别下降。 我们有什么的 一般形式的条件?, 然后一小块代码 如果发生的情况是真实的。 然后冒号,一个小 一段代码 如果条件执行 是假的,分号。 我们正在与该行完成的。 因此,语法是有点难看。 我们将通过一个 例如,我认为这是最清晰的。 因此,我们要分配 串教授 到1这两个值中,任一 大卫·马兰与否大卫·马兰,好不好? 所以,你应该很熟悉 用字符串,教授=。 我们将指定字符串 到可变称为教授。 现在,我们要检查 特定的条件。 在这种情况下,我们的条件 是class_num = = 50。 现在可能是一个 好时指出 当我们有串教授 =,这就是1等号。 这是任务。 而在class_num = = 50,这是两个等号。 这是一个质量检查。 因此,我们要说的是 类数等于50? 如果是这样,分配大卫马兰教授。 如果不是,分配教授 不戴维·马兰。 有什么问题吗? 同样,这只是一些 这是很好的了解。 你可以用,如果别人这样做。 一个很好的练习题 可能是,当 你回家吧完全相同 在有条件的,如果其他的形式, 因为你可以做到这一点。 这里有什么问题吗? 好吧,我想我们 要去上环。 真棒。 雪伦:好吧,让我们来谈谈 关于while循环。 因此,首先在左侧可以看到这里 - OK,说,一会儿(条件)。 然后你做this-- 我们可以改变吗? 杰森·赫塞豪恩:它切断。 夏伦:OK,然后有 也花括号。 所以假装花 括号是上面有 和下面的连连做到这一点。 因此,如果这些条件 括号中的值为true, 那么你应该继续做 无论是在while循环。 因此,例如,我们可以 做一个实践的问题。 我穿2耳环 现在,让我们说 如果我穿的至少一个 听,拍拍你的手。 所以,如果我们要继续 通过这一点,我们going-- [掌声] 对不对? 而且我穿的,还有 - 确定。 是啊。 我不戴耳环 了,所以没有更多的。 好了,那么这时候你会停下来。 这可以说是 几乎相当于变量。 比方说,你有一个 可变数目的耳环。 因此,尽管耳环数量较大 大于或等于1,拍手。 然后击掌后 手,减量耳环。 不喜欢耳环减1。 所以递减的耳环数量, 那么你将通过while循环 两次。 并且如果条件为总 true--所以,如果,比方说,2 = = 2, 2总是等于2,对吧? 那么你就永远 做东西在里面, 而这几乎相当于该 永远的循环,我们在划痕。 是吗? 学生:是双方只是 写一个while循环不同的方式? 夏伦:所以我们的重点 在这一个第一。 然后让我们比较 它有一个do while循环。 所以他们略有不同。 好了,让我们说的条件仍是 而我穿的至少一个耳环, 我不会穿 任何耳环现在。 让我们说要做,还是拍手,而 我穿的至少一个耳环。 会发生什么? [CLAPS] 嗯哦,伙计们。 好了,你应该拍 一次,因为基本上你 通过代码的第一部分。 你这样做不管是什么,以及 那么你看到的情况时, 你去回 这个循环,如果它是真实的。 这是否有道理? 学生:你总是 做到这一点的第一次。 夏伦:你总是这样做的 第一次无论 还是不说的条件是真还是假。 杰森·赫塞豪恩:什么时候 你认为你可以使用呢? 当它是有意义的使用呢? 汉娜:是吗? 学生:[听不清]。 杰森·赫塞豪恩:对。 汉娜:非常好。 杰森·赫塞豪恩:所以 当提示用户, 你会一直想 以提示用户一次。 你总是会想 以提示用户一次。 因此,而不是把 在一个while循环,你 放在do while循环,因为你 总是做它一次。 如果他们给你的 正确的答案,你就大功告成了。 如果他们不这样做,那么你再提示他们。 雪伦:好吧,for循环。 因此,在划痕,我们不得不重复块。 所以我们想重复的东西, 比方说,七次。 所以我们刚才说的重复7,和 说我是来帮你的白雪公主! 在C语言中,我们有for循环,如果我们 想通过什么 的特定次数。 比方说,如果我们初始化 变矮人 和使sure--所以第一块 第一个分号之前就在那里, 我们初始化我们的变量 到了,我们将它设置为0。 而我们的变量有 是一个整数,中间体 和变量名是 矮人,我们矮人设置为0。 之间的所述第二部分 两个分号是我们的条件。 所以只要矮人 小于7, 我们将继续坚持通过for循环。 然后最后一部分是做什么 我们在今年年底的循环? 矮人++,这意味着我们 一个每次递增矮人。 那么什么会发生在这里? 因此,首先我们要经历。 我们有矮人为0, 然后我们要 打印我在这里 帮你白雪公主! 然后矮人是要 增加,因为我们说矮人++。 矮人将是1。 然后我们compare--矮人是1。 我们把它比作是矮人小于7? 是的。 我要通过这一次。 我是来帮你的白雪公主! 然后变成矮人 2,然后我们进行比较。 2小于7? 是的。 我们将继续经历。 我们打​​算去 通过这个七次。 所以,最后,我们要 有矮人= 0打印出来,我 这里帮你白雪公主! 矮人等于1,2,3,4,5,和6。 请记住我们的索引为0。 因此,我们从0开始。 是吗? 学生:所以这是 不是做不同 因为这不打印 从最初在第一。 所以,你可以继续同样的事情。 你能做到这一点也与DO循环? 像相同的过程。 条件是矮人 比7或任何更小。 响应小于7。 夏伦:所以,你可以在技术上。 因此,如果我们回去to--您说话 关于while循环,对不对? 因此,do while循环 略有不同 因为我们每天至少保证 一旦我们将通过它, 所以这是最大的区别。 但随着while循环,我们可以 虽然说矮人小于7, 做到这一点,然后 一个递增矮人。 然后,我们必须初始化 这整个语句之前矮人 它等于0。 所以是的,我们能做到这一点这一点。 嗯? 学生:你能回去[听不清]? 夏伦:For循环? 学生:是啊,所以与矮人++, 好像这就是你以后怎么办 你已经跑了一些其他手段。 夏伦:正确。 学生:你能不能 没有这一点,把它 - 雪伦:你能。 学生:所以是[听不清]右后 在下方的下一行打印出来。 夏伦:是的,你可以把它放在那里。 但后来你会 刚刚离开的空白。 杰森·赫塞豪恩:你还是 需要分号虽然。 夏伦:它看起来有点别扭, 但你可以在技术上做到这一点。 技术上。 请不要。 是吗? 学生:有没有 替代++? 还有什么[听不清]? 雪伦:从技术上讲它是的矮人。 一个等号,我们要去 将其设置为矮人加1。 因此,在技术上这是 什么矮人++的手段。 这是否有道理? 学生:是啊,但 有没有什么办法? 如果你喜欢ever-- 夏伦:是的,你可以做矮人 - - 。 学生:[听不清]。 夏伦:是的,你可以 做了许多事情。 汉娜:你可以增加2个。 您可以通过3递增。 凡是将是不断变化的, 它最终使病情。 学生:所以,如果你想增加 2,你会怎么写? 汉娜:你可以写一dwarves-- 你可以写这件事了。 矮人矮人= + 2。 或略有速记。 我只是打算写+ = 2。 学生:OK,你会写 身在何方矮人++是存在的。 汉娜:没错。 夏伦:正确。 还有一个问题吗? 是吗? 学生:[听不清]矮人++? 夏伦:所以你don't-- 杰森·赫塞豪恩:是啊,不需要 它在那里。 [听不清]到底。 所以,你做[听不清] 那些因为你 那种分裂的初始化, 条件和变化。 在最后,你不需要它。 夏伦:还要注意你 不需要分号 之后,整个整个的循环。 学生:你将如何开始 负的初始数量, 例如? 夏伦:你可以初始化 矮人等于负2。 学生:你根本冲2? 夏伦:是的,所以 负号,破折号2。 学生:是[听不清]到 初始化为矮人[听不清]? 夏伦:是的。 因此,如果我们刚刚初始化矮人 早些时候,只是做整型矮人分号, 再有,我们可以做 矮人设置等于0。 学生:难道我们前面做的 该方案称INT矮人= 0, 然后just-- 夏伦:只要不have--这样 也将再次成为一个空间, 但你仍然需要一个分号。 是啊。 嗯? 学生:请问这段代码说什么 矮人的价值之后。 如果你毕竟问它这是 完成打印矮人的值。 夏伦:你可以要求它这样做。 学生:OK。 夏伦:但是你 要问这做那。 它不会为你做它。 我怕把我的耳环了。 这样做在最后的掌声。 只是在开玩笑。 杰森·赫塞豪恩:所以这是相同的。 所以初始化在顶部。 状态,打印,修改。 因此,这是完全一样 如果任何人都可以看到。 学生:你为什么不有 分号在第一行? 夏伦:在哪里? 学生:第一行之后。 夏伦:4在括号后? 因为我们想要去 通过这个循环。 如果你看看在循环 一般情况下,它们没有分号。 这是不实际的。 我们是好? 还有一个问题,两个。 是吗? 学生:这可能是 一点点前进, 但做矮人有 不同的[听不清] 从变量[听不清]。 雪伦:很好。 学生:[听不清]。 夏伦:是的,确实如此。 什么? 杰森·赫塞豪恩:是的,所以它的作用。 如此正常范围 事情是在大括号内。 所以范围总是 要在大括号, 但是这种方法不会使 多大意义的for循环 因为我们初始化 矮人在大括号。 矮人所以正常的范围,即 变量将不会延伸过去的。 这是一种特殊情况,虽然。 所以,你初始化 这些括号内, 然后你后来的范围。 所以特殊情况。 它们不应该有,与 这was--这有意义吗? 学生:没有。 JASON赫塞豪恩:我可以过目一下。 那么,你还有什么困惑? 学生:因为在你能使用dwarves--你 可以明显地使用矮人[听不清] 外面的公式吗? 杰森·赫塞豪恩:不,不。 所以它的范围是仅仅内 大括号中的for循环,是啊。 夏伦:但是,如果你初始化 在fo​​r循环外矮人,然后 你可以在其他地方使用它 还有一个问题吗? 不是吗? 行。 所以,我们谈一点关于筑巢 对于循环或嵌套条件语句, if语句。 因此,这里是哪里的例子 我们可以嵌套一个for循环。 比方说,我们正在打印 x的这个表就在这里。 我们可能要to--如果第一 我们只是不看代码 而我们只是想想而已,我们 想通过每一行 并打印每列,对不对? 这是否有道理? 行。 所以在这里,我们正在经历 每一行的基本上每一行, 并有三排。 然后在每一行中 对于每一列,并且有 四列,打印X。 所以。 当行0和列 为0,我们打印此X。 然后我们继续前进 通过该柱循环。 行仍然是0,但列是1。 然后列是2, 然后列3。 然后我们退出了这一点 因为循环再列 不再是小于4。 然后我们打印新的生产线, 我们去了新的生产线。 然后我们通过下一个 行,行得到增加, 我们再一次经历了。 这是否有道理? 是吗? 学生:所以窝[听不清]是 只是把它里面的循环? 夏伦:所以嵌套意味着我们 在一个for循环中有一个for循环, 像盗梦空间。 学生:你不需要一个 特殊的旋转或什么? 你只要坚持正确的内部呢? 夏伦:正确。 是吗? 学生:可能是[听不清],但 它看起来像有一个额外的空间 之间的所有的X的。 我不知道是否that's--如果 要真正做的节目, 它会做这样的事情? 夏伦:因此,没有。 这是按Enter键。 这是坏我们的一部分。 道歉。 汉娜:你将如何改变这种 程序,如果你做了一个额外的行? 学生:[听不清]。 夏伦:干得好。 学生:您还可以打印相同 通过绕柱开关的事情, 对不对? 夏伦:嗯? 学生:所以要打印你的小 XXX,第一行可以说打印, 取而代之的说 行,它说列。 夏伦:你可以改变 变量名来做到这一点。 是,你在说什么? 学生:不,我只是 说that--所以你 印刷行第一和 然后打印列。 可你也要先打印列 再行得到同样的图? 夏伦:你可以,但 那么你将有 要小心在哪里 你把新的生产线。 而且你会怎么跳回来? 杰森·赫塞豪恩:如果 你只要打开它 和的值是不同的, 而不必four--是什么呢? 三四个。 我想你有四个 行和三列。 这是否有道理? 学生:是啊。 杰森·赫塞豪恩:所以 是的,你可以做到这一点。 是的,绝对。 夏伦:但是,这会是真的只是 切换的变量的名称。 好不好? 行。 好吧,P设定之一。 OK,所以它的第一部分 你会做这个,马里奥。 只是在开玩笑。 它更喜欢这个。 所以,当我们刚刚看到的 嵌套的循环,使得该表, 想想你怎么可能可以 以这种方式打印出这些#标签。 然后在这里你会怎样 在这里打印此权利,这个开放的空间。 学生:[听不清]。 夏伦:是啊,你刚才打印的空间。 好了,只是想想这一点。 汉娜:然后同 问题集的一部分 是一个叫做程序 greedy.c,让你 会想思考 关于条件语句 并确保你 可以适当的改变。 和一个小小的警告我们为您提供 是要小心浮点值。 如果这意味着绝对没有给你, 它会在讲座本周被覆盖 而且在[听不清] 穿行,这 你们将学习 爱的习题集。 有一件事,我真的建议, 特别是Mario.c, 当你做题 设置后,如果您遇到问题, 通过在纸上做开始。 写出来,实际上坐在那里 假装是电脑, 去through--说 我是电脑, 我将如何跟进 本作遍历? 怎么会有我的变量 在fo​​r循环的变化? 这样做在纸上 使得它的10倍更容易 当你坐下来在电脑前。 所以刚才我的小插头。 夏伦:而且也不要以为你 有编码的一切一下子。 确保你把一个反复的过程。 做一点点,打印 它,看看会发生什么。 有时,它是一个小的试验和错误。 并得出办公时间。 超级好玩。 杰森·赫塞豪恩:那么什么问题吗? 没事的家伙,那 是你的第一个部分。 汉娜:谢谢你的光临。 杰森·赫塞豪恩:谢谢你来了。 雪伦:谢谢。 [掌声]