>> LUCAS FREITAS：好吧，我猜 现在我们的现场。
欢迎来到CS50 Supersection。
我们是不太舒服。
我的名字是卢卡斯塔斯。
我算是CS50头转录因子。
这是劳伦。
>> LAUREN卡瓦略：嗨，我是劳伦。
我也头TF的CS50。
>> LUCAS FREITAS：今天我们只是 让公众知道你的概述
家伙已经学会了在一个星期内，有希望 给你们一个好
意义是什么你应该知道 对于问题集之一。
>> 只是一对夫妇的公告。
首先，办公时间。
办公时间是从周一发生 周四在不同的房子
嫩伯格的每一天。
他们是为你一个非常好的资源 人来问问题，
聊到TFS，甚至交换 想法与其他同学。
所以一定要使用该资源 对你有利。
>> 第二件事是 CS50电器。
在过去的[听不清]
你们没有真正 有一个设备。
你只是在做的一切 你的个人电脑。
但对于这个问题，你实际上有 有一个虚拟机，因此
一定要下载CS50 电器和设置它。
>> 而第三件事是一定要 启动设置问题尽快公正
因为它更容易找到 帮助时，你在
开始的一周。
因为人们往往要等到 最后一秒启动问题集，
然后你去办公时间， 而且也有很多人。
在那里，如果你去周一，你会 一看就知道你可以倾诉的转录因子
几乎整个晚上， 他们打算超过
竭诚为您服务。
>> LAUREN卡瓦略：我可以只是停止 您只需一秒？
人人都能够下载 在CS50电器？
人们已经尝试过？
>> LUCAS FREITAS：要下载，由 这样，就可以在得到指令
cs50.net/appliance。
>> LAUREN卡瓦略：对。
而它确实需要一些时间，我们的 系统管理员以获得您的许可
键，所以报名参加 免费试用第一。
这样，你将拥有它30天， 然后等待您的许可证密钥
这应该给它 你一年。
>> LUCAS FREITAS：首先， 让我们来谈谈一点点
关于CS50电器。
该CS50设备实际上是一个虚拟的 机器，你要
在你自己的电脑是运行 基本上运行另一台电脑
在你自己的电脑。
这是很酷。
而实际上它的使用无处不在。
人谁到高科技的都知道 这是所使用的所有的时间。
你呢？
可以有多个电脑 在一个设备中。
>> 让我们来实际看看 在电器。
当你以后去的电器 注册后，你将不得不
把你的名字和登录哈佛 所以我们可以让你所有注册。
你会看到基本上是一个 壁纸，然后家庭和垃圾桶，
然后这些小图标。
这三个图标实际上是最 您可以在重要的事情
您的设备。
>> 第一个是gedit的，这是一个文本 编辑器，就像记事本或类似
任何类型的文本编辑器。
这是我们用它来写东西只是 代码，然后做的东西吧。
>> 第二件事，我们 这里是Chrome浏览器。
所以，如果你需要使用互联网 在家电，这是
你可以使用的东西。
>> 而第三件事是终端， 这其实是很甜蜜的。
这类人通常都害怕 终端，因为它是这个非常
在老式的应用程序，您 只是基本型与一切
您的键盘。
有没有很多的互动 用你的鼠标。
但实际上终端 确实很不错的东西。
>> 首先，让我们刚刚经历 一些命令，你
可以在终端中使用。
>> LAUREN卡瓦略：而且随时停止 我们，如果您有任何问题。
>> LUCAS FREITAS：是啊。
因此，我们有第一个命令 对于终端是LS。
LS的基本含义列表的一切，都是 文件及全体董事，
那我在，我在这个地方。
所以，如果我在这里做的LS，我要去看看 我有一些目录。
我的桌面上，下载， 日志和虚拟主机。
这些都是蓝色，因为他们 是所有的目录。
>> 那么你有一些其他文件。
你有像打招呼，hello.c中，这 只是文件，而他们在
不同的颜色。
所以这是一个非常重要的命令只是 你可以看到哪些文件
并且您有目录 在该目录中
你在终端正处于。
当你看到jharvard @家电和 接着小符号那里，
波浪，那只是意味着这就是 你是在目前的目录。
>> LAUREN卡瓦略：所以输入ls几乎是 如单击该文件夹
列出在那里，在它表演 你们凡内容
在该文件夹。
>> 观众：是否有文字 在hello.c中呢？
>> LAUREN卡瓦略：哦，你不能 看到，因为它是蓝色的。
>> LUCAS FREITAS：它说 日志和虚拟主机。
>> LAUREN卡瓦略：这些都是 只是其他文件夹。
我很抱歉，这真的很难看到的。
也许如果我们关掉灯？
科尔顿，你想尝试和 找到灯的开关？
我们对此深感抱歉。
我没有去想它。
>> LUCAS FREITAS：但它基本上是 -
是啊，如果你能 -
>> LAUREN卡瓦略：放大屏幕。
>> LUCAS FREITAS：我不知道 具有该功能。
>> LAUREN卡瓦略：[听不清]。
确定。
嗯，有只是很多自然 光在这个房间也是如此。
>> LUCAS FREITAS：让我们姑且认为 还有另外两个没有目录。
>> LAUREN卡瓦略：刚才我们一起承担。
这是唯一的一部分，你会 要着眼于终端。
>> LUCAS FREITAS：下一个命令 基本上，也许你想组织
你的文件 -
例如，所有的在一个C文件 目录，但是你没有一个
只是对于C目录中的文件呢。
你基本上可以创建一个目录 使用终端以及，这是
同样的事情，右击 并说新文件夹。
该命令创建目录，其中 是MKDIR，所以基本上“制造”和
“目录”。
>> 然后你可以把 该目录的名称。
比方说，我想叫， 我不知道，让我们说做PSET1
这一点，我刚刚创建的目录。
让我们只检查它的存在。
所以，如果我做的LS，现在我看日志， 然后PSET1，然后虚拟主机。
所以，我有没有新的目录。
>> 然后经过你有一个新的目录， 也许你想浏览
进去，所以下一个命令这张CD， 这只是基本上意味着去
特定的目录。
所以，如果我想去PSET1， 我可以做CD PSET1。
>> LAUREN卡瓦略：CD代表变更 目录[听不清]能
记住这一点。
>> LUCAS FREITAS：现在你看到， 而不是仅仅有jharvard
家电，我已经jharvard家电， 然后PSET1，因为它示出
我在哪里，我在这台电脑。
>> 现在，如果我想回去 目录是这样的人之前，我
可以做一个CD点点，这只是意味着去 到我之前所在的目录，
像这样的父 目录中，基本上是这样。
现在我看到我 回jharvard。
>> 接下来的事情，我可以做到这一点 为rm，这是删除一个文件。
例如，让我们先做LS 看看我这里有。
我有打招呼，hello.c中。
比方说，我想删除它们。
我能做的RM打招呼。
它会说“删除普通文件 你好？“我说：”是的。“现在，如果我
做LS，我看到它的 不存在了。
>> 如果我尝试使用rm等的目录， 不过，它不会
让你做任何事情。
它会说，哎，你 不能删除一个目录。
因此，我们有这个其他都称为RMDIR， 这只是基本含义
删除目录。
我可以，例如，删除PSET1。
如果我做LS，我不 拥有它了。
>> 这方面有任何问题吗？
没有？
是吗？
>> 观众：你离开是很重要 一个空格之后 - 当你
开始输入的东西？
>> LUCAS FREITAS：是啊。
如果我做喜欢的CD和目录， 我要加一个空格。
什么空间你在说什么？
>> LAUREN卡瓦略：之间的空间 CD和[听不清]。
>> LUCAS FREITAS：是啊，你要 放空间，因为CD是
命令，然后在接下来的字符串 你的类型是基本的目录。
所以它就像一个参数。
是吗？
>> 观众：当你列出，所有这些 在不同的目录，对不对？
>> LUCAS FREITAS：是的，他们 在目录中。
>> 观众：什么是差异 目录中？
>> LUCAS FREITAS：他们只是 不同的文件夹。
目录是一个文件夹 在您的计算机。
>> 观众：打开文件夹。
>> LUCAS FREITAS：是的，这是 刚打开的文件夹。
>> LAUREN卡瓦略：在这里，那些 那是蓝色的是实际的
您可以进入和目录 然后看到一堆东西，是
内，这是不幸 因为你不能真正阅读
那些蓝色。
和那些在白色的只是文件 是当前目录内。
>> LUCAS FREITAS：所以目录 是文件夹。
其他的都是文件。
>> 观众：什么是命令 重设或清除呢？
LUCAS FREITAS：要清除？
LAUREN卡瓦略：要清除？
LUCAS FREITAS：我觉得 这是“清”。是啊。
所以，你只需要输入不清楚 你的屏幕是太乱了。
还有没有其他问题？
你会学到一堆其他的 在命令只是自然的
学期，因为他们是非常有用的。
>> 所以，现在让我们来谈谈编译。
我们谈到伪代码和 源代码和目标代码。
并且有很多代码，也许 你们是困惑的。
让我们说一下什么 当你写一个程序发生，
而你编译它，并成为 一个可执行文件。
这些都是的话，你的家伙 可能听说过，也许你不
真的知道是怎么回事。
>> 比方说，例如，我想 编写一个程序，说：“你好。”该
，在你的头脑的第一件事就是 有种你再想想你是怎样
要做到这一点在你的心中，并 你可能在想用英语或
其他一些语言，如自然 语言，大概。
然后你想，好吧，如果我想， 例如，编写一个程序，
说：“你好，”我会启动一个程序， 我将打印打招呼，然后我会
退出程序。
这是伪代码。
这只是基本上你想 想出的事件序列
你要做的是 能写一个程序。
>> 那么你的源代码，并 源代码不必
特别是C。我们谈论 C语言有关的源代码，因为这是
我们正在学习的语言，但当然 代码可以是几乎任何
你有编程语言。
在学期过去了，你会 学习其他语言。
这也是源代码。
>> 例如，在这里，这是我的源 代码，然后我包括一个
库，然后我开始 主要的，然后我打印。
和劳拉是要谈一点 所有的这一点。
因此，这是源代码。
>> 什么是目标代码？
对象是一堆零 和的，基本上是这样。
什么情况是你一开始有 伪代码，这是全英文的。
我的意思是，你了解它。
可能是你的朋友了解 它，大多数人会
理解的想法。
但电脑是非常愚蠢的，他们 不懂英语，所以你
已翻译的到的东西， 通常译成
编程语言。
>> 和你能想到一个编程 语言那种作为一门语言
那你告诉你的电脑怎么 说话和理解。
你基本上写的东西在 一种语言，你们俩和你
计算机理解。
这是源代码。
那么回事形式的伪代码源 代码，它是由你决定。
它基本上是你做你的方案。
>> 但问题是， 电脑甚至不
了解编程语言。
它不明白 源代码中。
它实际上只是理解 零和一。
因此，我们有这个非常神奇的东西叫做 一个编译器，这基本上是
要得到所谓的源，你 写在你俩的语言
和你的电脑说话，现在你 要改造，在
零和一。
所以基本上什么样的编译器是 它得到的源代码，在这种情况下，C，
它是将它改造成零 和那些在计算机
理解并可以使一个 可执行文件出来。
>> 这是否有道理？
你可以认为编译器作为 一些翻译的是
帮助您讲解到电脑 究竟什么是应该做的。
>> 但我怎么编译。
让我们回到设备，并 让我们说，我做了计划。
首先我要创建一个目录 在这里，我要叫它
“实践”。现在，我要浏览 到该目录，所以CD的做法。
现在，我在里面练习。
>> 现在，我要开始gedit的， 让我怎么做呢？
我可以点击这里，或者我可以只 逐字输入“gedit的，”它是怎么回事
打开我。
>> 现在，我要输入我的程序，所以 正是我写在幻灯片。
我宣布一个图书馆。
我做整型为主，无效。
现在我做的printf，你好。
现在，我要救这一点。
让我把它付诸实践，并 我要调用这个hello.c中。
所以，现在它的保存。
>> 如果我想编译它，其实我 可以在两个不同的地方做。
我可以做一个终端窗口， 所以这个大的，或者您也可以
用gedit，实际上有一个 终端窗口就在这里。
所以，你可以很方便地就去做 你的代码，那么你可以只输入
无论在这里，并尝试编译它。
>> 让我怎么编译的代码？
我们有最简单的方法是使用 作，这是一个函数，它
基本上要 编译你的代码。
你只需要说做招呼，所以 “使”和该程序的名称。
>> 哎呀。
这是尴尬的。
>> LAUREN卡瓦略：你能[听不清]？
>> LUCAS FREITAS：对不起。
我没有把它保存在 正确的目录。
来练习，现在 将其保存为hello.c中。
对不起。
现在它的保存。
>> 我只是做ls和被 确保它在这里。
好了，现在就在这里。
所以，现在如果我这样做让你好，它吐出一个 很多东西，但当时它只是给
我的另一条线的终端，它 也就是说，它是成功的。
现在如果我再这样做了LS，我竟如此 看到此文件为绿色，这是
可执行文件。
>> 然后如果我要运行它，所有的 我所要做的就是点斜线打招呼。
它会跟你打招呼就在这里，所以 这正是我要问它。
>> 有编制的一种方式， 这是使用铛。
铛只是一个编译器，我们有， 和它的更详细一点点
编译它。
但它的作品一样好。
所以，如果我做铛，然后邻，然后 我想给的名字
可执行文件，所以让我们说 “你好。”然后我想要的文件
编译，hello.c中。
它也将进行编译。
和你在这里的文件， 我可以执行它。
所以他们两个人的工作。
>> 这是否有道理？
有问题吗？
>> 观众：你能否放大 在一点点？
>> LUCAS FREITAS：对不起？
>> 观众：放大？
>> LAUREN卡瓦略：我想你 只需命令加。
>> LUCAS FREITAS：命令是什么？
>> LAUREN卡瓦略：命令加。
>> LUCAS FREITAS：号
>> LAUREN卡瓦略：哦，那不是 去上班，因为 -
这是因为我们设置的分辨率 对于这件事情。
>> LUCAS FREITAS：我不知道 认为我们可以放大。
是啊，我们不能放大。
你有别的问题？
抱歉。
>> 观众：你能重复铛？
>> LUCAS FREITAS：该铛？
铛的是同样的事情化妆，但 不同的是，第一次我要去
写铛，这是命令， 那么我该怎么办-0，所有的，这是
只是我们要什么 后来作为一个标志学习。
所以，只是觉得你总是 必须把邻。
>> 然后首先，你要放 该可执行文件的文件名，
基本上，你是该文件 要创建。
所以我可以说，举例来说，的Hello2和 然后，我要编译的文件，
这是c文件。
所以这是hello.c中。
这是否有道理？
>> 观众：你好是什么？
那是什么？
>> LUCAS FREITAS：HELLO.C。
如果我编译它，而如果 我LS，我也有一个
的Hello2，我只是编译。
如果我尝试运行它，它会 做同样的事情为hello，
只是打印打招呼。
>> 观众：怎么来化妆 你可以穿上后的hello.c？
>> LUCAS FREITAS：在化妆，你 不必把。角
在化妆，你刚才说的 该程序的名称。
你不必说了。角
但对于铛，你应该。
>> 观众：随着铛做的，你也 必须添加[听不清]
>> LAUREN卡瓦略：是啊。
所以，你也有图书馆。
>> LUCAS FREITAS：是啊，这东西 我们打​​算以后使用。
这就是所谓的连接，并且我认为我们 后来去谈论它。
另一个问题？
>> 观众：你放 点斜线铛？
>> LUCAS FREITAS：号
点斜线只是开 可执行文件。
所以，铛，你只写“铛”，并 那么，如果你想打开
可执行文件，你只是 编译，那么你就点
削减而得名。
这是否有道理？
>> 观众：如果你只是改变 [听不清]为Hello World，你
必须重新编译它？
>> LUCAS FREITAS：是啊。
如果我想要说，例如，“你好 在那里，“我可以只保存了，我
只是重新编译它。
因此，让我做一个make打招呼。
如果我做你好，这将 说“你好”。有道理？
还有没有其他问题？
>> 观众：你一定要包括 标准I / O的协调工作？
>> LUCAS FREITAS：是啊。
标准I / O的基本 具有一个库
实现printf的。
所以，在那件事权利 顶部包括标准输入输出。
这是包括一个库， 基本上有一堆不同
工具，你可以使用。
呢？
其中printf的是那是一个函数 基本上版画
消息到屏幕上。
>> 还有没有其他问题？
没有？
确定。
所以，现在让我们来谈谈 -
>> LAUREN卡瓦略：我们只是 去的风格指南。
你想只找到它在这里？
>> LUCAS FREITAS：所以我们要 谈风格。
>> LAUREN卡瓦略：哦，大卫 没有完成。
确定。
我们为什么不回来 风格在最后？
它实际上已更新 因为我们说话。
>> LUCAS FREITAS：是啊。
让我们的方式为大卫完成了。
>> LAUREN卡瓦略：能 我们改用什么呢？
>> 所以我希望每个人都对 享受划痕。
不幸的是，它的时间 远离本 -
不幸的是它的时间离开 从这些漂亮的编程块
到C。但幸运的是，所有的 编程构造，你已经
在划痕一直与有 直接翻译到C，和我们
要开始学习 他们中的一些现在。
让我们谈条件先说说 在布尔表达式。
>> 这是在运行储备 电池电量。
>> LUCAS FREITAS：如何是 那不工作？
确定。
你去那里，我会得到 -
>> LAUREN卡瓦略：所以条件 重要的，因为它们使我们能够
逻辑引入到我们的节目。
这里有一个条件的例子 在一个C程序。
让我们注意如何 -
所以这种情况下块就在这里，这 printf语句将不会执行
除非内的条件 括号中，n大于0，则
计算结果为true。
>> 现在，所有的F内的条件 语句是布尔表达式，
这意味着有 只有两个选项。
他们既可以评估为true， 或者他们可以评估为false。
所以在这里，所以这是有道理的，对不对？ Ñ 大于0时，意味着它是一个正
数，这意味着它将打印 出“你选择了一个正数。”
>> 有很多的布尔表达式 能够形成的条件与
初始化语句。
我们具有比少。
这是小于或等于。
这仅仅是一个有趣的[听不清]。
如果你想，如果它是printf的发生 大于或等于0，则
你会选择这个。
因此，平等公正的权利附加 后大于号。
>> 相等相等，这是从不同 只是一个等号，平等平等
实际上意味着，凡是在 本左手边是一样
什么在这个右手侧 其中一个等号是什么？
什么是只是一个等号？
分配。
>> LUCAS FREITAS：谁说的？
是糖果？
哦，不。
抱歉。
你都得到糖果。
哦，好吧！
三个人得到的糖果！
>> LAUREN卡瓦略：所以这一块就在这里 是前爆炸运营商
等号，所以这 不等于。
因此，如果这是在我的情况下， 病情的身体会
执行只有当一切在 左边是不一样的
什么是右侧。
>> 我也可以有刚 感叹号。
实际上，我们将在一个功能看 滑动如何做到这一点可以使用。
>> LUCAS FREITAS：有问题吗？
没有？
>> LAUREN卡瓦略：我们可以结合这些 布尔表达式构建更
复杂的条件语句。
所以在这里，如果凡是在左边 双杆的右手边，或
无论是在右手侧 双杆计算结果为true，
然后我们再打印出来无效。
然后到这里，如果不管的 对2的左手侧
＆符号和任何的右侧 两个＆符号的右手边
计算结果为true，则 我们将打印出有效的。
双条被称为逻辑 OR运算符的双连字号
所谓逻辑AND运算。
是吗？
>> 观众：是那些刚 小写l的？
>> LAUREN卡瓦略：号
它们实际上是 -
你知道的反弹，像 上面的回车键？
你看到了吗？
>> LUCAS FREITAS：它实际上是一个酒吧。
>> LAUREN卡瓦略：它实际上是 只是两间酒吧。
>> 观众：你可以使用 字符串相等相等？
>> LUCAS FREITAS：号
我们打​​算以后学习 一些事。
>> LAUREN卡瓦略：有一个函数 您可以使用。
但你不必 担心，只是还没有。
>> 如果我给这个程序 数字5？
什么会打印出来吗？
>> 观众：[听不清]
有效。
>> LAUREN卡瓦略：有效？
是啊。
我不知道谁得到了这一点。
>> [笑]
>> LAUREN卡瓦略：这是一种 吓人[听不清]。
>> 观众：所以，双和， 这只是意味着和？
>> LAUREN卡瓦略：是啊。
因此，5号是两个较大 比大于100 0及以下。
>> 观众：它为什么会呢？
>> LAUREN卡瓦略：一个是符号 其实不同的东西，它是
按位运算符，你会 后来了解。
但它的东西，实际工作 与一个给定数目的位。
>> LUCAS FREITAS：试想他们不 不用担心它现在。
>> LAUREN卡瓦略：我觉得它可能 下周就要到了。
>> LUCAS FREITAS：还有没有其他问题？
没有？
>> LAUREN卡瓦略：因此，我们已经看到了一个 它阻止可单独存在，但它可以
也可以搭配和else块。
因此，在这种情况下，如果n大于 0，我们要打印出“你
拾取的正数。“一样，意味着 如果是0，或者如果它的不足
大于0，我们要打印出来， “你挑一个负数。”
>> 这里有趣的是，这些 是互相排斥的。
还有的永远不会是一个案例 其中这与本
既可以打印出来。
>> 我敢肯定，你曾与if / else语句 方块在刮，所以这应该是
相当熟悉。
是吗？
>> 观众：我们是否需要之间的空间 整数n等于调用getInt然后在空间
if语句？
就像我们使用一个线[听不清]
>> LAUREN卡瓦略：哦，这里的空间？
>> 观众：这样，但 你双倍的空间。
没有，上去了。
上去了。
>> LUCAS FREITAS：只是行了？
>> 观众：是啊。
>> LUCAS FREITAS：就在空行？
>> 观众：是啊。
>> LAUREN卡瓦略：空行？
号
这只是一个风格的东西。
>> LUCAS FREITAS：这就像有时 你只是跳过一些行，以便
该代码看起来并不像 文本块巨大。
>> LAUREN卡瓦略：我觉得发生了什么 是，我们必须在这里留言，但我
拿出来，这样你们将有 思考的代码，而
不只是看我的评论。
一般来说，间距不会真的 影响程序的运行方式。
它更多的是一种风格的东西。
而当我们有风格指南更新 并准备去年底
supersection，我们将讨论 关于更多。
>> 有什么东西错 这一方案，对不对？
因为0是不是真的 一个负数。
因此，让我们看看我们是否能够解决这个问题。
>> 你大概可以想像 与此说，对不对？
如果n大于0，我们打印，“你 挑一个正数。“THEN ELSE
如果n小于0，“你挑了个 负数。“一样，”你挑
0。“
>> 现在，有趣的是， 这可能会永远持续下去。
你可以有一个if块中，否则，如果 块，另一否则，如果块，否则，如果，
否则，如果，否则，如果，否则，基本上 只要你想要的。
而当这样的构造， 这些都将是
互相排斥的。
是吗？
>> 观众：那么，为什么你就不能使用 另外，如果代替[听不清]？
>> LAUREN卡瓦略：在这种情况下，是的，我 如果可以使用另一个，这将是
精绝，因为 条件本身是
互相排斥的。
但如果条件不是唯一 相互的，这将
迫使他们从来没有两个评价， 如果是有道理的。
>> 观众：在这种情况下，我们能否巢 第二，如果在第一，如果？
>> LAUREN卡瓦略：如果 - 你是什​​么意思？
>> 观众：如果这两个条件 并不相互排斥？
>> LAUREN卡瓦略：如果条件 并不相互排斥？
但是你只想要其中的一种来运行？
>> 观众：你只想要 如果不是别的。
>> LAUREN卡瓦略：是啊。
有总是会很多 的方式，你可以做到这一点。
你绝对可以嵌套它们。
而且你会在将来的幻灯片看到， 你可以有多个如果，只有一个
纷至沓来。
但是，这是逻辑上的一种方法 组织你的程序的流程。
>> LUCAS FREITAS：而且还有一 的事情，就是你问把
如果再另外如果。
这将很好地工作，但它的坏 设计，因为基本上，如果你
第一，如果检查，而且你注意到 的数目大于0，则
可以只是完成该程序。
你不必检查 它是小于0的，对不对？
>> 但是，如果你做，如果，如​​果，它要检查 这两个，而如果我做，如果其他人在，
它会检查是否 它是大于0。
如果是，它不会连看 在其他行的代码。
所以你基本上是检查它像 两次不必要的，所以这就是为什么我们
如果做别的，如果。
还有没有其他问题？
>> 观众：这样的功能 在其他的，如果是相同的
如果这只是如果？
>> LAUREN卡瓦略：号
你究竟要看到我的未来 滑动的示例，其中它可以
是不同的。
在这种情况下，它几乎是相同的。
>> 所以在这里，我们有多个的一个例子 if语句和
功能是不一样的 就好像我刚刚说，如果
否则，如果其他人，如果其他人。
让我们只是想想将打印 ，如果我输入数字95
到这个程序。
>> 观众：[听不清]
>> LAUREN卡瓦略：然后呢？
>> 观众：[听不清]
>> LAUREN卡瓦略：是啊。
所以在这种情况下，这些条件是 不是相互排斥的。
并且因为没有什么能阻止 从评估这种情况下，如果这
1已经有了，他们只是 一切都将打印出来。
所以，我怎么能解决这个问题？
>> 观众：还有IFS？
>> LAUREN卡瓦略：您可以使用其他IFS。
我可以改变顺序 这些，对不对？
如果我第一次做这个吗？
嗯，事实上，没有。
这不会对95工作。
>> LUCAS FREITAS：没有，只是在else IFS。
>> LAUREN卡瓦略：在别的IFS 将固定的。
这是否清理混乱 IFS之间和else IFS？
>> 观众：我只是想问问你，如果 你没有使用否则，如果，它会停下来？
>> LAUREN卡瓦略：对。
所以只有这第一个。
如果我输入的号码95，仅此 将打印出来的，它从不
会进展到别人。
>> LUCAS FREITAS：刚才那种想到的 它作为如果发生这种情况，做到这一点。
在else是一样，如果没有，检查 对于这一点，然后做到这一点。
因此，像他们都相互 排斥。
你不能为两个以上的。
>> 观众：你可以使用逻辑 而对于这种情况？
>> LAUREN卡瓦略：是啊。
这是另一种方式，我们可以 已经修正了这个问题。
我们可以定义 范围，对不对？
所以我可以说，如果n大于 大于90且小于 -
嗯，我想这其中并没有真正 无所谓，但在这里我可以说，如果
n大于80小于90。
大于70，小于80更大。
那会还努力。
>> [笑]
>> LUCAS FREITAS：她是害怕。
>> LAUREN卡瓦略：不要怕。
>> LUCAS FREITAS：这不是 这将是错误的。
只是，它是不必要的 冗长。
就像在计算机科学，人们应 要尽可能简单，只要
你具备的功能。
你想要的糖果？
>> 观众：不需要它。
>> LAUREN卡瓦略：你吓到 每个人，卢卡斯。
>> LUCAS FREITAS：对不起。
>> LAUREN卡瓦略：大卫还提到 在这些类switch语句。
基本上，这是怎么回事是开关 需要声明一个变量。
在这种情况下，我们正在采取一个整数。
>> 如果整数是1，我们要 打印出来，“你挑一个小
数。“如果整数为1，”你 挑了中等数量。“如果
整数为3，“你挑了个高 号，“而且我也有一个默认的情况下，
到这里，但它没有显示 起来，这是太糟糕了。
>> 基本上，这仅仅是 另一种语法。
我们也可以精确实现这一 同样的事情，if和else if
语句。
但是，当有很多不同 条件和许多不同的
变化你想要做什么 每个输入，这是一种选择。
所以它只是一个很好的语法就知道了。
是吗？
>> 观众：为什么不是一个反斜杠 N的第一个？
>> LAUREN卡瓦略：对于在那里？
有没有反斜线Ñ在那里 因为调用getInt -
如果你试试这个，它会 给你这样的提示。
给我1和3之间的整数。
如果我把背隙N，它会 带我到下一行，但我只是
希望他们键入整数 后右结肠。
你可能已经把反弹ñ。
这不是什么大不了的事。
是吗？
>> 观众：对于此代码，这是 情况1，是因为
这是第一种情况？
因为 -
>> LAUREN卡瓦略：不，不，不。
因此，这是给我一个整数 1到3之间。
如果n为1，我打印了。
如果我问信，我可以有 说给我的一封信
和C那么这将是案件A.
>> 观众：[听不清]。
的情况下也只是[听不清]
>> LAUREN卡瓦略：是的，没错。
是吗？
>> 观众：如果你有什么想有 更多的关系式的？
所以不是说Ñ 等于1，[听不清]
n是大于1的第一种情况？
>> LAUREN卡瓦略：其实，如果我不 定义其中的一些情况下，这将
被带下去。
因此，实际上，也许这不是 你问什么。
>> LUCAS FREITAS：我认为她询问 的情况下为：N比0，更大的情况下，
小于0。
>> LAUREN卡瓦略：也许开关 声明是不是真的是你想要的东西
在这种情况下使用。
>> LUCAS FREITAS：switch语句是 只是值，所以你检查
该值是像这样或那样的。
所以你不能真正 把条件。
>> 观众：如果什么人 类型的[听不清]？
>> LAUREN卡瓦略：那将是 我的默认情况下，不幸的是
你看不到。
>> LUCAS FREITAS：[听不清] 让他们看到。
>> LAUREN卡瓦略：其实， 你知道吗？
就让我们去研究50，我会 只是放大在学习上的幻灯片
50，因为这仅仅是烦人。
所以让我真正去条件。
这只是要 取一小会儿。
>> 好的。
所以，我很抱歉。
至少现在，我们就可以看到 一切都没有它切断。
好的。
>> 所以，如果他们把在10，我们将默认 这里我默认情况下，我
将只打印无效的，因为我 要求他们输入一个整数
1到3之间。
还有没有其他问题？
是吗？
>> 观众：我们先来说说案例一，案例 3，说，你希望它是所有
同样的事情，所以你选择了一个数 这不是一个中等数量。
在这种情况下，会是多余的？
你只需要改变两个文本 其中，或者会有一些
冗余？
有什么办法来组合 [听不清]？
>> LAUREN卡瓦略：有办法 结合他们，但我相信你可以
只有结合相邻。
所以，如果我没有什么定义 对于案例二，这将
适用于这两种情况。
哦，如果我没有把任何东西的情况下 之一，这将同时适用于
案例一和二。
如果是有道理的。
>> 观众：你能再说一遍吗？
>> LUCAS FREITAS：确定。
如果你做了，基本上一样，你有 同样的事情，但你不把
任何事情在这里，你会无论是对 案例一案例二，做到这一点。
对不对？
如果你得到这个突破意味着 这个情况下，见好就收。
所以，这就是刹车的意思。
所以，如果我只是做了这个，你看，这是 情况之一，你只需做到这一点。
如果是情况二，它也将 刚刚来这里做。
>> 观众：但是你能做到吗？
如果有东西 案例二[听不清]
>> LAUREN卡瓦略：我不相信 你可以做到这一点。
我不认为你可以跳过左右。
你可以做到这一点，罗布？
我不认为如此。
>> 观众：所以只有一个号码 可以去一案之后，对不对？
不能有案例一，逗号，二？
>> LUCAS FREITAS：不，你不能。
你绝对不能。
>> LAUREN卡瓦略：我的意思是，问题是 这是一种选择，而这可能不是
适合你的使用情况，这样，那么你 在if条件会使用。
>> 观众：那你为什么还要这么做？
开关？
>> LAUREN卡瓦略：我会用这 如果你很确定 -
实际上，卢卡斯，被你堵。
>> LUCAS FREITAS：哦，对不起。
>> LAUREN卡瓦略：如果你有非常 您要为定义的行为
每一个输入端，这可能是一个 小比写出来更简洁
一个if语句为每一个。
>> 观众：什么的 再次突破是什么意思？
>> LAUREN卡瓦略：间隔意味着停止。
请记住，如果我没有这个破 在这里，我们刚刚倒下
进入下一个案例。
>> LUCAS FREITAS：歇手段来获得 出了switch语句。
因为如果它是1，我想 打印该离开。
我并不想检查什么。
>> 观众：你不想 打印任何东西。
>> LUCAS FREITAS：是啊。
因为它是相互排斥的。
>> 观众：而这是否只是进行 到下一个的情况下，如果第一种情况下
是不是真的？
抑或是测试所有的情况下， 在同一时间？
>> LUCAS FREITAS：不， 检查顺序。
按顺序，是的。
还有一个问题，那我们得 继续前进，所以我们可以面面俱到。
是吗？
>> 观众：所以对于的情况下，可以有 做了一些事情，除了只是一个？
你可以给它一个范围？
>> LUCAS FREITAS：号
>> LAUREN卡瓦略：我不认为 你可以给它一个范围。
>> LUCAS FREITAS：你不能你 不能给它一个范围。
>> 观众：此案是具体的 [听不清]。
>> LUCAS FREITAS：开关 是有点价值的。
你在做不同的事情 上的值，为特定值。
你不能做的范围，你不能 做任何事情。
它只是一个工具来查看。
>> LAUREN卡瓦略：大多数人不使用 十分CS50 switch语句，
但它的存在。
>> 好的。
因此，我们要谈接下来的事情 大约是三元运算符。
这只是另一种类型 有条件的。
基本上，这是怎么回事是我 寻求的整数，如果n为
大于100，我要打印出来 “高”。如果不是的话，我要去
打印出“低”。
>> 所以它在做什么是条件 在这里，在括号和你
一种能想到的问题 因为我问是否
这是真的还是假的。
如果这是真的，我要做到这一点首先 的事情，如果这不是真的，我
要做到这第二件事。
>> 有关的任何问题 三元运算符？
>> LUCAS FREITAS：只是想注意，从 大卫是，只要你有一个
条件 -
>> LAUREN卡瓦略：我想大卫 通过实时流观看。
>> LUCAS FREITAS：他在干什么 生活流现在。
所以，只要你有一个条件，你 应该把花括号，
就像我们在一个开关 这里声明。
我们在这里有大括号。
不管是什么条件，你 应该也放了。
>> LAUREN卡瓦略：你会看到 这在风格指南。
我们实际上并不具备 风格指南现在。
我觉得大卫还在工作。
>> LUCAS FREITAS：他说， 它只是现在的工作。
>> LAUREN卡瓦略：哦，原来是现在的工作？
确定。
因此很明显，今年的风格 引导，即使你只是有一条线，
你必须把那些 大括号英寸
你不一定需要为 该程序的功能。
也许我们应该休息一下 之后的条件和直行
在风格指南来清除 一些这些东西？
>> LUCAS FREITAS：是啊。
你有问题吗？
>> 观众：不，我只是等待 直到风格指南。
>> 观众：你能回去 以三元运算符？
>> LAUREN卡瓦略：三元，是的。
>> LUCAS FREITAS：三元运算符是 基本上是一个的if else语句，但
而不必有两条线 检查了，如果再的
否则，你只是有一条线。
所以基本上，如果我想给一个字符串 高或低的，并且我的一个值
想要做一个高，如果n大于 100还是低，如果是少，我能做些什么
这是[听不清]
该字符串将是，然后我 问该程序是n大于100？
>> 所以这就是为什么我有这样的表达 在括号中，然后
问号。
我问的是它大于100？
如果是这样，这将是很高的。
如果它不是，它要低。
>> 所以基本上你认为是你问 一个问题，所以你把括号
的条件。
然后你把问号 因为你问吧。
如果这是真的，这将是 在第一个值[听不清]在这里。
如果不是的话，我打算把 值，冒号之后。
这是否有意义？
>> 这也是东西，就像是一个 工具在C，但你不必
具体地使用它。
但是CS的人通常喜欢 因为它只是节省了线。
>> LAUREN卡瓦略：这是非常优雅。
它做了很多，在短短一个语句。
>> 观众：所以百分号是 只是无论对结果
前行？
>> LAUREN卡瓦略：哦，对不起。
这百分号实际上是 一个占位符，这个S。
在printf语句，你有这个 串在这里，这是怎么回事，以
打印出来，但你不能随便 把这个在里面。
否则，将打印 出的S字面上。
所以我们把一个百分点这里，以保持 保持这个地方什么
谈到在逗号后。
>> 因此，对于一个字符串，你有百分之秒。
对于一个整数，百分比我。
对于浮动，百分比f。
你会看到那些为我们 看到更多的例子。
但也许你应该说说 风格指南一小会儿，现在
它的了。
>> LUCAS FREITAS：如果你去 cs50.net/style，你会看到
风格指南。
对于习题集，你的分数为 习题集是由范围，
而如果你做了所有的基本含义 问题设置的部分，或者如果您
尝试一些东西。
第二件事是正确，这 手段是你的程序在做什么
是应该做的，还是它 有错误，或者是它没有做什么
它应该做的。
>> 第三件事是设计，这意味着 你实现这口井，或者是
您使用不必要的报表？
因此，举例来说，如果你想重复 一个数字的10倍，你在写一个
for循环还是你只是在做10次 相同的语句，只是在做
复制和粘贴。
这样的设计对于那些。
>> 最后，你有风格。
风格就像判断 如果你的代码看起来
可读种漂亮，。
这只是基本含义 是你的代码可读性？
将别人谁一直在寻找有 你的代码能够了解什么
它在做什么？
它有意见之类的？
>> 让我们来谈谈的风格， 你应该使用。
第一件事是注释。
注释是非常重要的，你的 代码，因为有时候你做
你的程序，你知道到底是什么 你想这样做，你刚开始
编码，只要输入了一堆C的，但 如果有人在看着你是
代码，他们不会要能够 了解它，因为他们不知道
是在你的脑袋的东西，比如 该pesudocode，所以也许他们会
有一个很难理解 什么代码正在做什么。
>> 因此，注释是真正有用的解释 以人谁是在看
你的代码它在做什么，和 实际上，即使对你来说，
他们是非常有用的。
当你去努力和辛勤pset时， 你会看到，代码变得
更长的时间，然后注释是真的 所以你记住每一个重要的东西
你的程序的一部分一样。
>> 把一个评论，你可以做一个 斜线斜线，然后写一个评论。
和整个行是注释的一部分， 不管你写下来，
它不会是 用你的代码。
这基本上就像编译器 将要忽略。
这是否有道理？
>> 观众：你又做了什么 写评论？
>> LUCAS FREITAS：这个？
斜线斜线？
当您键入斜线斜线，无论 是在该行的是不会
被认为是C。是吗？
>> 观众：所以注释之后，你 刚刚进入并开始一个新行？
>> LUCAS FREITAS：是的，没错。
>> LAUREN卡瓦略：斜杠斜杠 是单行注释。
>> LUCAS FREITAS：例如， 在这里，我们有 -
让我放大 -
例如，我在这里声明一个浮点数， 但也许，如果你只是把这个
在你的代码，就像你不知道 这是什么在做什么，其实像
有人谁的看着这个代码 将是一样，什么样的
到底是怎么回事？
>> 如果你把一个评论说“转换 华氏摄氏度，这让很多
更有意义。
你，想，好，你是 做一个转换。
这是否有道理？
所以它只是一些帮助人们 准备好你的代码，也使
你能够组织 你的代码更好。
>> 第二件事是，你可以做 多行注释，所以有一个
对于一帮行的意见。
相反，不必把斜线斜线 第一行注释，斜线斜线，
在第二行，依此类推，则 可以使用斜线明星。
你做的方式是，对 注释的第一行，你
要做一个斜线明星明星， 所以就是这样。
就像我们这里有初 一个程序，你通常把你们谁
是，这是什么节目呢， 和类似的东西。
这有点像一个头 对于该程序。
>> 再次，它不是一个 编译器会关心，但
这是重要的，你知道这是什么 程序执行或其他人
知道你的程序在做什么。
这样你就凶多吉少明星明星，然后 你要做明星最后一行
削减到能够关闭 这一评论。
因此，基本上所有其它线路， 你可以只写什么，而这
一切会被忽略。
>> 而且，正如风格，你看到 每一行都有一个明星，和所有
星星是一致的。
这些都是重要的东西，所以 你的代码看起来很漂亮。
听起来不错？
>> 现在，条件。
什么大卫说，我们应该 居然把这些幻灯片，是
当你有任何形式的if语句 或任何种类的情况下，
你应该使用大括号表明， 这是发生了什么事情要发生
当你具备的条件。
从技术上讲，当你有一个条件 然后下一行仅仅是一个
行，你没有在技术上有 把花括号。
>> 基本上，编译器会明白 反正是隐式的。
但对于CS50，我们要求你们把 花括号只是让你
代码更有条理 和更具可读性。
因为该代码变得更长，如果你 没有大括号和如此的。
它变得非常凌乱。
>> LAUREN卡瓦略：这正是 什么大卫刚指出，
在我以前的幻灯片。
它绝对有效不带花 括号，但对于文体的原因
我们要问这个 你不要把那些英寸
>> 而当你开始运行style50， 这是一种检查50对
风格，它会提醒你做到这一点。
>> LUCAS FREITAS：还有一件事是 记得把花括号沿
在每一行。
所以你做什么，例如，l的。
转到下一行，开大 撑，然后你去下一行。
缩进，这是四个空格。
那么你就写什么，然后又 线，并关闭大括号。
所以，要确保这两个大 括号是在不同的线路。
>> 观众：所以，如果这段代码有一个像 10其他IFS，这应该
有10套括号？
>> LUCAS FREITAS：是的，为他们每个人。
是啊。
因此，如果，否则，如果，等等。
>> 观众：你不能 按Tab键缩进？
>> LUCAS FREITAS：我们要求您 你们用四个空格。
一些文本编辑器翻译标签 作为四个空格自动。
gedit中没有，所以你必须 做空格空格空格空格。
这也未尝一些 程序员只能做标签，有的
程序员只能做四个空格， 和其他一些人甚至做
2或3位。
这只是我们在这里问 你们做四个空格。
>> 观众：有几乎肯定 必须是一个方式的gedit来
自动[听不清]。
像没有[听不清]这样做的。
>> LUCAS FREITAS：是啊。
我觉得你可以去设置。
>> 观众：它已经这样做了这一切。
>> LUCAS FREITAS：它已经这样做？
确定。
因此，只要确保你 有4个空格。
>> 观众：我们有没有把卷发 括号中的for循环呢？
>> LUCAS FREITAS：是的。
>> LAUREN卡瓦略：每当你的 封装的代码块，就
请使用大括号。
而你认为我们只是之前 是拘泥于这个没有很好的
因此，如果你们干什么去了就搞定 高科技在实习的大公司，
他们会给你一个风格指南，并 他们会告诉你，这是你的
代码需要的样子。
而且即使你学会了这样的代码 这一点，也许在你的实习
你必须做一些事情 完全不同的。
他们期望你符合 他们的风格。
>> LUCAS FREITAS：还有一件事是 那你会注意我怎么有这样的x，
空间少，空间，0？
只要你有一个操作 -
它可以像加，减，时间，少， 更大，无论运营商 -
你必须把左边的空间 和操作者的权利。
>> LAUREN卡瓦略：这些都是 称为二进制操作数。
只要确保你总是空间 你的二进制操作数。
>> LUCAS FREITAS：这是 不是二元运算。
>> LAUREN卡瓦略：这是 因为它需要两个。
>> LUCAS FREITAS：哦，是的。
>> OK，开关。
首先，你必须要看到，就像 在if或else语句，你有
把花括号在它自己的行 并根据这里的大括号。
请注意，有一个空格 切换后，如果只是和其他人喜欢
我们之间有一个空格 这和括号。
所以，你必须把那个。
>> 而且也没有空间，之后每 括号中或年底前
括号中。
所以你看，这一切都在一起， 也喜欢这里了。
>> 是吗？
>> LAUREN卡瓦略：我觉得 我们需要继续前进。
>> LUCAS FREITAS：所以这是其中的一部分， 风格指南，你必须为CS50。
一定要到cs50.net/style 并看看这个。
这些都是非常重要的 为你的风格得分。
>> 让我回去的语句。
>> LAUREN卡瓦略：我宁愿 只需使用style50。
我们只是要去 直循环。
好的。
>> 因此，让我们回到内容，现在 我们已经讨论了在风格指南。
循环，你见过他们的划痕，并 我们要谈论他们在
C.
>> 在fo​​r循环中，有 三个部分的
声明这个for循环。
你有你的初始化中 您设置的变量。
你有你的条件，这是 检查，看东西是否是
真或假，以及是否 循环应该继续。
和你有你的更新，这 正在更新您的变数。
>> 就让我们来简单看看一些 这个C代码的for循环在行动。
这是怎么回事是在这里的 初始化时，我们设置时i为0。
在此条件下，我们正在检查 i是否小于10。
并在更新我们 i增加。
这样会导致什么 这个循环？
>> LUCAS FREITAS：其实，首先， 做你们知道我+ +是？
>> 观众：由1提高。
>> LUCAS FREITAS：增加1，是的。
因此，这是同样的事情， 做我等于我加1。
并请注意，我们没有一个空间 在i和+之间。
>> 所以，不要你们知道这是什么会做什么？
有人能告诉我吗？
也许得到一些糖果 正因为如此？
>> 观众：[听不清]
>> LUCAS FREITAS：确定。
[听不清]
显示大家以后[听不清]。
是啊，它会显示“此 是CS50“的10倍。
>> LAUREN卡瓦略：我想这是 在幻灯片的标题。
>> LUCAS FREITAS：哦，是的。
>> [笑]
>> LUCAS FREITAS：没有什么帮助。
>> LAUREN卡瓦略：那么那些 对于循环。
我们将看到一些更多的例子 以后的循环。
但是，让我们实际来看看的 第二种类型的循环，你会遇到
在C中，它就是所谓的while循环。
>> 在while循环中，你已经 刚刚得到一个条件。
条件是在检查 开始，如果该条件
计算结果为true，那么代码中 而该块体
将执行。
并且代码将继续 执行，只要该
条件保持为真。
>> 下面是C中的while循环的一个例子 我们将设置数为10〜
开始的时候。
只要计数值大于0时， 我们要保持打印出此
变量在这里。
我们将递减计数和 然后再检查的条件。
打印，减量，检查 的条件了。
>> 在这里，我们有一个涉及一个例子 早期你的问题。
我们有百分之S当我们 打印出一个字符串，而现在
我们要打印出一个int，我们有一个 ％的我作为我们的占位符代替。
这些信件都应该是相当 直观，s为字符串，i为整数。
>> 所以，如果这段代码执行时，你应该 从10倒数到0时，打印出
每个整数。
>> LUCAS FREITAS：你能想到的 ％，因为它感觉就像一个空白
空间，然后你把这个 这里的变量在该空白。
因此，举例来说，在这里我将刚 一片空白，然后我把
算右那里， 计数的值。
这是否有道理？
>> 难道我只是做如printf 然后报价，算什么？
将这项工作？
>> 观众：号
>> LUCAS FREITAS：没有，因为它会 实际打印的字“数”
而不是打印的值。
这是你如何让它打印出值 朝向变量，而不是
可变的只是名称。
有问题吗？
>> 观众：你为什么使用 作为反对一会儿？
>> LAUREN卡瓦略：我会用的 循环，如果我知道到底有多少
迭代我想我的循环运行。
在这种情况下，也没有关系，因为 我的意思是，我只是想
想到一个非常简单的 例如这个幻灯片。
但让我们说，你想要的东西 坚持下去，而 -
>> LUCAS FREITAS：例如，你 要求输入，直到人
为您提供了正确的输入。
所以像而输入不 好了，一个劲儿地问它。
还是喜欢，而你父母不给 你的钱，不断地问它。
>> [笑]
>> LAUREN卡瓦略：你不知道如何 很多时候，你就必须做到这一点。
>> LUCAS FREITAS：因为你不 知道多少倍的
要继续下去。
>> LAUREN卡瓦略：但是，在一个for循环， 你需要知道多少倍。
是吗？
>> 观众：我想弄清楚，百分比 说这是一些关于到
发生时，我的为整数， 和反斜线北 -
>> LAUREN卡瓦略：什么意思？
谁知道反斜杠n意思？
新的生产线，是的。
没错。
>> LUCAS FREITAS：你能想到的 n作为新行。
>> LAUREN卡瓦略：尼斯。
>> 观众：那是什么数 短跑冲刺[听不清]？
>> LUCAS FREITAS：减计数减为 同样的事情，再加上加分，但
而不是增加， 它减少了1。
>> LAUREN卡瓦略：任何更多 while循环的问题？
没有？
哦，我们应该 跳过了这一点。
>> 这是一个do while循环。
非常相似，除了在一个while循环 这种情况下，我们检查的条件后，
中的主体的代码 循环执行一次。
因此，我们执行的代码 先不管。
然后我们检查的情况下，执行 再次，如果条件为真。
>> 你会发现自己使用这个时 你要求用户输入。
因为你总是不得不 再问一次，然后根据什么
用户输入的是，您可能需要 重新提示，如果再次问
输入是不是你 希望它是。
>> 观众：所以它就像一个形式 供人填写。
>> LAUREN卡瓦略：是的，没错。
你会发现，我想，在你的第一个 PSET，你将不得不
使用做好循环收集 来自用户的输入。
>> 观众：视情况而定， 您的while循环将倾向于运行更
往往比while循环，像 由一个或某事？
>> LAUREN卡瓦略：如果是准确的 -
>> LUCAS FREITAS：他们应该始终运行 时代的确切数额，你
希望它运行。
就像我们用做的，而因为我们真的 想要得到的输入至少一次。
在while循环，有时候你不想 执行它在所有，如果它不是
执行的情况。
因此它取决于设计。
我的意思是，你可以使用做，而或 而只要你的代码做了
它应该做的。
>> LAUREN卡瓦略：但我 认为答案给你
问题很可能是肯定的。
假设条件是假的。
在一种情况下，它会运行一次，并 另一种情况下，它会运行零次。
所以，是的。
>> 还有什么问题吗？
是吗？
>> 观众：可循环条件是 for循环中的变量其他条款
比[听不清]。
>> LAUREN卡瓦略：是啊， 它可以是任何东西。
可能是开始pset时，你 不会遇到这种情况，但
肯定它可以是任何东西。
>> LUCAS FREITAS：我觉得 我们在这里完成。
>> LAUREN卡瓦略：我们？
没有？
>> LUCAS FREITAS：循环？
是啊。
>> LAUREN卡瓦略：我们不应该。
哦，我们已经完成了循环。
确定。
>> 事实上，因为我们一直在谈论这样 多，让我们居然全部浏览
交给study.cs50.net/conditions。
而你要向下导航 对问题部件。
嗯，事实上，当人们越来越 这种设置中，CS50是研究
将是一个工具，你将转录因子 使用的部分，并且准备
你们可以使用，如果您错过的部分。
这将包含一堆幻灯片， 一些提示和技巧对每个
的话题，和一些实际问题 的解决方案。
>> 为什么不是每个人都只是来看看 这个问题就在这里。
>> 对不起，我应该提醒 今天的人们带来的笔记本电脑。
但是，如果你没有 一台笔记本电脑，那也无妨。
你可以只记下来的 一张纸或查看
你的邻居的肩膀。
>> 让我们试着写一个程序， 提示用户采取了猜测，
每个家庭子女平均数 单元在美国。
这个数字是2，顺便说一下，当你 从这些例子看。
>> 我们想打印出的平均数 在美国每个家庭的孩子，那么我们
想什么？
我们要收集的输入 从用户。
然后这取决于用户的 输入是，你要打印出
无论这是正确的 或者这是不正确的。
>> 而第一件事，你会 看，如果你点击那个小箭头
问题插件的底部是一个 当场记下一些伪代码。
这样你就不会编程呢。
你只是让你的 思想秩序。
>> 有谁想帮助卢卡斯 想出正确的
伪代码这个问题？
>> LUCAS FREITAS：什么是第一件事情 我们也许应该在这里做？
你们有什么想法？
>> 观众：[听不清]
>> LUCAS FREITAS：是的，确定。
因此，打印。
只是说在打印这个平均值 人数？
确定。
打印的问题，让我们说。
之后我打印这个问题， 我该怎么办？
>> 观众：获取输入。
>> LUCAS FREITAS：获取输入。
还有别的吗？
>> 观众：条件。
>> LUCAS FREITAS：条件。
>> LAUREN卡瓦略：那是什么 情况会是什么？
>> 观众：中[听不清]的数量。
>> LAUREN卡瓦略：对。
>> LUCAS FREITAS：那么我该怎么 检查的条件？
>> 观众：如果它等于2。
>> Lauren的CARVALHO：如果它等于2。
没错。
>> LUCAS FREITAS：这有什么 否则，我应该怎么办？
>> 观众：计数。
>> LUCAS FREITAS：所以，如果它是 等于2，让我们说 -
让我写，如果输入等于 2，然后我什么都
需要做的就是正确的。
然后别人，我要去 打印不正确。
还有别的吗？
没有？
>> LAUREN卡瓦略：所以你 可以点击 -
每个人都拥有这样下来？
>> LUCAS FREITAS：这是否有意义？
所以，现在让我们尝试编写这一点。
>> LAUREN卡瓦略：如果您按一下小 箭头，它实际上可以节省您的
伪代码，这实在是令人振奋的。
你可以让那些为注释如果 你要只是为了提醒自己
该怎么做。
>> LUCAS FREITAS：因此，例如，第一 我要打印的问题，所以
我应该如何去做到这一点，其实？
printf的。
所以printf的，问题是平均 每个儿童的数量
家人在美国。
>> 然后我会得到 来自用户的输入。
我那么如何才能做到这一点？
>> 观众：找诠释。
>> LAUREN卡瓦略：调用getInt。
>> LUCAS FREITAS：确定。
所以先声明，对不对？
整型，姑且称之为n等于调用getInt。
>> 而现在的情况。
所以，让我说，我要去 来看看这里的答案。
因此，首先，如果输入，这为n，等于 到 - 我应该如何去写呢？
>> 观众：平等相等。
>> LUCAS FREITAS：完美。
因此n。
并请注意，我做一个空间， 等于，等于，空间，真实的。
现在我该怎么办？
东西的风格很重要。
大括号。
>> 然后我去打印。
如何打印？
printf的。
>> 观众：难道资本化？
>> LUCAS FREITAS：号
它应该全部小写。
所以这是正确的。
>> 请问这足以令​​的printf 语句，还是我缺少什么？
>> 观众：新线。
>> LUCAS FREITAS：新线，是的。
现在别的。
>> 观众：是否有空间 中的printf后，还是没有呢？
>> LAUREN卡瓦略：我们应该 检查风格指南。
>> 观众：它不应该。
>> LUCAS FREITAS：应该不是，确定。
所以别的，printf的，“这是不正确的。”
>> LAUREN卡瓦略：哎呀，你的报价。
>> LUCAS FREITAS：确定。
还有别的吗？
它是否好看？
>> LAUREN卡瓦略：大家试试吧？
>> LUCAS FREITAS：是啊，让我们来运行它。
所以它的编译，并将其 看来，它的工作原理。
让我们尝试两个孩子。
这是正确的。
现在让我们再次运行，但现在反而 把两个孩子，让我们的
说，我要去把像5。
这是不正确的。
如此看来，它的工作原理。
>> LAUREN卡瓦略：你为什么不向他们展示 如果你把东西会发生什么
奇怪，像一些字母。
>> LUCAS FREITAS：哦，是的。
让我们也检查。
如果什么用户试图一塌糊涂 与你的程序，他们只是
写的，我不知道两。
它会说重试。
>> LAUREN卡瓦略：所以调用getInt 是要求他们重试。
我们没有照顾 那我们自己。
>> LUCAS FREITAS：是啊。
所以，除非我居然把一个数字，它是 要不断地问我重试。
>> 观众：你是怎么运行呢？
>> LUCAS FREITAS：只要按一下 这个星号按钮。
>> LAUREN卡瓦略：你应该上去。
你去那里。
>> LUCAS FREITAS：星形 按钮就在那里。
是吗？
>> 观众：是否提示[听不清] 与十进制数吗？
>> LAUREN卡瓦略：我相信会的。
>> LUCAS FREITAS：如果它做什么？
>> LAUREN卡瓦略：如果他们输入 在一个十进制数，我觉得
它会提示。
>> LUCAS FREITAS：让我们来看看。
>> LAUREN卡瓦略：因为 它不是一个int。
>> LUCAS FREITAS：是啊。
>> LAUREN卡瓦略：所以它不是一个int， 得到诠释将要求您重试。
>> 观众：那么，在该代码将 提示的小数位
用户，他们必须输入 一个整数，具体一点吗？
>> LAUREN卡瓦略：调用getInt实际上是 这样做，对我们来说。
>> 观众：不是，我的意思是，如果我们想 进入[听不清]
>> LUCAS FREITAS：你可以说像平均 在美国的子女数。
我不知道。
我们可以说，例如，“请 输入的整数。“
>> LAUREN卡瓦略：一个整数，等于 到的平均数目。
我的意思是，它只是如何 你话呢，对吧？
>> LUCAS FREITAS：是啊。
这实际上是不可能的编码的一部分。
它是更多的像什么 你会想
写在你的程序。
>> 观众：怎么会，我们已经运行它，如果它 实际上是在gedit中[听不清]。
而不是压着打？
>> LUCAS FREITAS：我们会 首先编译它。
我们可以通过做凑合吧 和该文件的名称。
然后运行它，我们会做点斜线 和该程序的名称。
>> 观众：我想我的意思是，如果 我们希望该方案以应对
他们不正确，无效的条目， 你不应该把 -
>> LUCAS FREITAS：我们将无法 做到这一点，因为这个代码表示
重试来自获取诠释其是 一个已经实现的功能
我们通过CS50库，并且由于 它已经实现在那里，我们
不能随便[听不清]。
>> LAUREN卡瓦略：如果你不使用 调用getInt，那么你就可以做到这一点。
>> LUCAS FREITAS：是啊。
但是，如果你使用的是调用getInt，你不能。
还有没有其他问题？
>> 观众：请问您去与像 GetFloat然后能够把
它在一个小数？
>> LUCAS FREITAS：是啊。
>> 观众：确定。
然后你只需输入能 飘起了一个等号 -
>> LAUREN卡瓦略：是啊。
除了一个完全相同的 浮而不是一个int。
>> LUCAS FREITAS：只要把它放在这里 然后GetFloat那里。
>> 观众：当你将 看到或已经看到 -
>> LAUREN卡瓦略：我们有 没有得到那里。
>> 观众： - 做与不平等 花车不[听不清]
>> 观众：是什么分号是什么意思？
>> LAUREN卡瓦略：分号刚 也就是说，这种说法是完整的，
我们打​​算去 到下一张幻灯片。
>> 观众：所以这是必要的 每一次？
>> LAUREN卡瓦略：是啊。
好了，好了，没有这些条件， 因为他们是
封装的东西。
所以基本上，如果事情是造成 你再创建一个大括号
块，不要把一个分号 在末端。
>> LUCAS FREITAS：但是，一切都 否则，是的。
当你完成一项声明， 把分号。
如果你忘了分号，则 编译器会得到你生气，
而你将不得不 以尝试修复它。
>> LAUREN卡瓦略：如果我把一个分号 在这里，将停止这一点，我
永远不会得到执行什么 内，通过的方式。
所以它的那些常见的错误之一。
>> 观众：始终执行。
>> LAUREN卡瓦略：是啊。
在这种情况下，我们总是 执行里面有什么。
>> 观众：你的风格[听不清] 附加的你，想过。
>> LAUREN卡瓦略：哦，这是真的。
>> 观众：[听不清]单 行的事[听不清]
>> 观众：是的？
>> 观众：你可以有多个 在一个线路输入？
所以像你可以问用户 打印两件事？
>> LAUREN卡瓦略：不使用 -
>> LUCAS FREITAS：号
比方说，我也想 得到这个整数米。
我必须这样做，在不同的线路。
>> 观众：如果你要运行 即，如何[听不清]？
这将打印的提示 有[听不清]
然后你会进入一个， -
>> LAUREN卡瓦略：嗯，运行它。
我的意思是，没有什么从阻止我们 只需运行它，看到什么
会发生什么。
>> LUCAS FREITAS：我认为这是 要在抱怨我们
因为我们没有使用 -
>> LAUREN卡瓦略：哎呀。
>> LUCAS FREITAS：它在抱怨我们的权利 现在，因为我们没有使用这个
可变的，但如果我这样做，例如， n是等于等于，和m等于
等于，那么会出现什么 发生这种情况？
什么这个节目吗？
>> 观众：我只是想知道 它怎么会 -
>> LAUREN卡瓦略：她只是想 要知道它的外观
像，我想，对不对？
于是花了其中之一，然后 它采取了第二个。
>> 我认为我们应该继续前进， 因为我们多了一个
幻灯片放映去之前 -
你要拉起来的数学？
>> LUCAS FREITAS：是啊，数学。
>> LAUREN卡瓦略：给 我只是一秒钟。
>> 有几个不同的数值 在C C.数值数据变量
可以分为不同的类型， 而这些是那些你会
看到最频繁。
>> 和int是整数。
你不能有任何小数。
在电器，它需要 32位来存储一个int。
>> 一个浮点可以有小数。
它也需要32位来存储 一个漂浮在电器。
>> 双是一个数字带小数 点需要64位来存储它，
这意味着你可以有 更高的精确度，因为
你可以有更多的 -
你怎么称呼它？
>> LUCAS FREITAS：是啊，这更多。
>> LAUREN卡瓦略：更多地方 小数点后。
和久长是一个整数 这需要64位
其疼痛的电器。
>> LUCAS FREITAS：所以它可以 比整数大即可。
>> LAUREN卡瓦略：关于数据的东西 C语言的类型是，他们告诉你什么
样的数据可以存储 在您的变量。
他们会告诉你如何使用这个 变量在你的程序。
这是非常重要的，只是跟踪 什么样的数据类型，你正在使用的，如果
你需要转换从一个数据类型 另一个，确保你知道
究竟发生了什么时 铸造发生。
你会看到一个例子后 在上一这些幻灯片
错误可能发生。
>> 让我们来看看C语言的一些数学和 觉得真的很用心，我猜，
这是怎么回事就当这 数学正在发生。
在第一行，有什么 发生的事情时，我x声明？
>> 观众：你让 X要的东西？
>> LAUREN卡瓦略：是啊。
好吧，我真的问工作 系统为32位的内存，对不对？
我在其中可以存储一个int，并 我要调用诠释x。
>> LUCAS FREITAS：基本上会在内存中 并发现有32个地方
位和说法，哎，我想这个空间， 它的将是名为x。
所以，你只是相当多的发现 在你的记忆的盒子
存储值对于x。
>> LAUREN卡瓦略：然后我初始化 x，它意味着，我只是存储
2在那个地方，那个块的价值 内存，我们问经营
制度。
而这儿正是我们正在做的是 我们实际上并声明
在一行中初始化Ÿ代替 在两行像我们一样在这里，
这也是一个完美的罚款，我们是 加1到x，和我们的存储
在y值。
>> LUCAS FREITAS：所以基本上这是什么 行呢，它现在发现一个盒子Y，
然后将其值，在东西 你打算把箱子里面，是
将是x的值加1。
所以它有这个方块年。
它得到x的值，看起来 在这里，看看它的2。
把它放在那里，加1，所以 它把一个3那里。
这是否有道理？
所以y是2在这种情况下。
>> LAUREN卡瓦略：好吧，冷静。
我们看到了一些另外，让我们觉得现在 关于分工。这里我
声明和初始化一个浮点 所谓的答案，1除以10，
然后我打印出来的答案 到小数点后两位。
并注意在这里，在我的printf语句， 当我想打印的东西两
小数位，％.2 f是 我想用。
因此，问题2只是说 我需要经过两地
十进制打印出来。
>> 现在，什么事情要发生 如果我运行这个代码？
有没有人有一个想法？
你会打印出来？
>> LUCAS FREITAS：什么是 我们期望得到的。
>> LAUREN卡瓦略：做什么 我们想，首先？
>> LUCAS FREITAS：[听不清]
>> LAUREN卡瓦略：0.1，是的。
但是，会打印出？
>> 观众：[听不清]
>> LAUREN卡瓦略：哦，不，其实。
这就是我说的是你为什么 需要保持非常谨慎的轨道
您的数据类型。
那么，什么样的数据类型是什么？
是一个int，对不对？
有没有小数位。
10也是一个int。
有没有小数位。
>> 如果我把一个int一个int，我得到一个 INT这是不是0.1的，因为整型
不能有小数位，但只是0。
由于int只是截断 关闭小数。
>> LUCAS FREITAS：所以每当你做 与整数运算，你要
得到一个int作为答案。
因此，基本上，什么样的电脑 是干什么的，它的划分由1
10，连带0.1。
但随后的样子，等待，这是 应该是一个整数，所以你只要
忽略了0.1，所以它现在只是0。
>> LAUREN卡瓦略：所以，当我打印这个 出来，我得到0.00，而不是0.10。
>> LUCAS FREITAS：这是否有道理？
>> LAUREN卡瓦略：这是一种 不幸的，对不对？
>> LUCAS FREITAS：我们那么如何才能解决这个问题？
>> LAUREN卡瓦略：让我们 尝试解决这个问题。
这里是哪里，我的例子 实际上铸造1
和10至浮动。
所以，现在，1已不再是一个int。
1是一个浮点数。
顺便说一句，这仅仅是个语法 当你想投的一个用于
数据类型到另一个。
你可以把数据类型 括号和有刚刚之前
您正在铸造的值。
>> 所以在这里，我把一个浮点数由 花车得到一个浮动的答案。
是的，这将在 事实上打印0.10。
这是否有道理？
>> LUCAS FREITAS：所以类型转换只是 从一种类型转换到另一边。
因此，浮动1实际上是1.000。
不完全是这样，但是它的东西 带小数位
这实际上是1。
这是否有道理？
是吗？
>> 观众：如果你没有浮答案 等于1.0除以10？
>> LAUREN卡瓦略：你究竟要 一看就知道下一张幻灯片。
这实际上是我们非常下一张幻灯片。
这实际上是一个更好的比 类型转换，我想。
因此，这两个是刚彩车通过 的事实性质，它们
有小数位。
是吗？
>> 观众：如果你的所作所为[听不清]
除以10？
>> LAUREN卡瓦略：其实一个浮动 一个int划分实际上给你一个
浮动，这样就会很好地工作。
>> 等待，每个人都明白这一点？
因为这将是一个非常 大不了在PS​​ET1，其实。
是吗？
>> 观众：你能不能快 走在红色的部分？
>> LAUREN卡瓦略：红色部分，是啊。
卢卡斯，你想？
>> LUCAS FREITAS：确定。
因此请记住百分比 是一个占位符。
这就像一个空格。
因此，让我们试着去了解一切 这是怎么回事。
百分比意味着它是一个占位符。
然后，你必须在F，这意味着 这个占位符是一个浮动。
我们在这里的最后一件事是 2，这意味着我想有两个
小数的浮点数。
>> 如果我刚％F，他们就会把 一堆小数。
这样我就可以把0.2或0.1或0.5，或 什么，以及它打算把那
小数位数。
唯一的一点是，如果你把喜欢 .100或.1,000，它实际上并不是
打算把所有这些小数 因为它不具有足够的内存
有这种精度。
>> 还有没有其他问题？
是吗？
>> 观众：所以刚才浮动允许 你要超越的整数？
>> LUCAS FREITAS：是的。
>> LAUREN卡瓦略：好了，只是浮 可以让你有小数位。
>> LUCAS FREITAS：它只是意味着你 现在可以有小数。
>> 观众：为什么我们 用不完的整数？
>> LUCAS FREITAS：为什么会 你使用整数？
也许，如果你是从0数到10， 你想实际使用一个整数。
你并不需要使用浮点数。
在某些情况下，你不 有实际 -
>> LAUREN卡瓦略：也许你 不想小数。
>> LUCAS FREITAS：也许你不 想用一个浮点数。
>> LAUREN卡瓦略：另一件事是， 记住，无论是把一个float和int
需要32位来存储它们，也许 你不想浪费比特的
小数位。
>> LUCAS FREITAS：是啊。
这么喜欢，只是觉得这个问题。
你有32位为 一个int和float类型。
对于一个int，所有这些32位 去的整数部分。
如果您使用的是浮动32位，你 有正在使用这块内存部分
对数，为整数， 和正在使用的其它部分
小数位。
因此，这意味着，你不能去 非常大的数字用浮漂，因为
浮动的已经使用了很多 内存为小数位。
是吗？
>> 观众：那第一个答案， 它到底是什么做的？
它是设置浮动平等的价值 该占位符，你可以
记得在它的下一行？
它说，浮动的答案。
>> LUCAS FREITAS：是啊。
因此，浮动的答案意味着你得到 现在有点桶的内存
持有浮动，这是怎么回事 被称为应答。
所以，这就是浮动的答案呢。
>> 然后你说的内 这一点，你要放
这样做的结果。
所以你要做1.0除以 10.0，你会得到0.1，然后你把
这里面的答案。
>> LAUREN卡瓦略：那么在一行中，我们 声明和初始化这个浮动
所谓的答案。
>> LUCAS FREITAS：有趣的是，虽然 这只是一条线，它在做
多个操作。
这是Ç出租的只是一种方式 你用更少的代码。
这是同样的事情三元 运营商，你怎么可以这样做的
在一行[听不清]。
它实际上在做同样的事情， 做浮动答案，分号和
那么答案等于代替这一点，但 让你做两线的，
它就像一个快捷方式。
是吗？
>> 观众：所以，如果你跑了这一点， 这将是0.10？
>> LUCAS FREITAS：是的。
是吗？
>> 观众：是回答居然代码， 或者是它只是叫什么名字？
>> LAUREN卡瓦略：这 实际上是代码。
这就是我们要去 来命名我们的变量。
>> 观众：所以这只是 名称[听不清]。
>> LAUREN卡瓦略：是啊。
我可以说浮x等于1.0。
>> LUCAS FREITAS：问题是， 变量的名称是
您使用的东西。
这是对你很重要。
对于实际的程序，唯一 该事项是价值，你
有桶的内部。
为什么你有变量和的原因 变量名是这样你就会知道
你处​​理的，像什么 你是什​​么样的数据
访问的时间。
但代码本身，如果你调用 它回答或提问或任何东西，
漂亮多了，也没关系。
不要紧
只要你在每一个一致 它的发生，所​​以你叫它
别的东西。
是吗？
>> 观众：执行变量 超越函数？
就像如果你要创建一个支架 [听不清]，可能你只是
[听不清]再回答？
>> LAUREN卡瓦略：号
>> 观众：[听不清]
>> LAUREN卡瓦略：号
这将是在范围之外 这个特殊的变量。
而实际上，这是一种 有趣，因为当我们有
之类的东西循环或如果这些 条件下，如果你声明一个变量
在另一组大括号， 它真的只存在
在这些大括号。
>> 观众：最后一个音符左右 在[听不清]花车。
为什么你想使用整数？
这更是一个侧面说明比 任何事情，但你的电脑
显著更好地处理整数 比它在处理浮点数。
这就像一个数量级 幅度更快。
因此，如果我们仅仅只处理了花车， 事情会是慢了很多。
>> LAUREN卡瓦略：其实，似乎有 要与花车的一个问题。
>> LUCAS FREITAS：类的原因 这一点，你能想到，就是如何以二进制
你可以表示整数 通过将0和1的。
>> LAUREN卡瓦略：这是 接下来的事情。
>> LUCAS FREITAS：确定。
真棒。
>> LAUREN卡瓦略：只是 持有这种想法。
>> LUCAS FREITAS：好的，我会 以后告诉你。
>> LAUREN卡瓦略：在我们到达什么 卢卡斯只是说，运营商
优先。
这是常识。
你们这样做就够了。
所以，只要有什么东西是在括号中， 它会先发生。
这是乘法的优先级 在此外，
减法，这样的事情。
因此，实际上，只是没有人要 告诉我什么头号实际
计算结果为？
>> 对象：27。
>> LAUREN卡瓦略：27？
是啊。
>> LUCAS FREITAS：我举 糖果的人。
>> LAUREN卡瓦略：好吧。
怎么样二号吗？
>> 对象：22。
>> LAUREN卡瓦略：22，是的。
我不知道谁得到了这一点。
之三？
>> 对象：10。
>> LAUREN卡瓦略：10，是的。
凉爽。
所以模。
卢卡斯，你想解释模？
>> LUCAS FREITAS：模数是这样的运营商 这实际上是一个非常有用的
一堆问题。
如果我做55模数10，它做什么 这让我们说，我想
除以10 55。
我能得到什么？
这感觉就像如果我实际上只是 这样的划分，什么是
第一次，我得到了整数？
>> 对象：5。
>> LUCAS FREITAS：5。
然后余数为5，对不对？
所以它就像5次10加5。
基本上，它，它会尝试什么模 这个数除以这一个，
它看到什么是余数 分工。
>> LAUREN卡瓦略：因此，它只是 返回余数。
所以，排名第一的是什么？
5。
第二？
>> 对象：3。
>> Lauren的CARVALHO：3。
之三？
0。
和4是1。
没错。
>> LUCAS FREITAS：简单，对不对？
>> LAUREN卡瓦略：我们为什么不跳过这 仅仅因为我们没有真正的
一次，人们似乎明白了。
因此，这里就是卢卡斯 刚才讲的。
>> LUCAS FREITAS：另一个原因，我 将使用整数而不是浮点数是
该花车非常不精确。
他们为什么不精确？
大卫说，代表一个整数， 例如，我们使用0和
1的，对不对？
然后你基本上做 乘法，做所有这些
操作要知道什么十进制数 你有代替二进制。
>> 现在会发生什么，如果我尝试 把小数点？
事实上，举例来说，如果我有 像3.33333多少？
这感觉就像10超过3。
我怎么来存储所有的 3就是我以后有哪些？
这真的很难，对吧？
你不能只是告诉电脑， 哎，我有一个3，和
那么你这样做，直到永远。
其实，电脑是不 足够聪明这一点。
>> 所以基本上所有的计算机所做的就是 它试图把尽可能多的数字作为
它可以达到，你有记忆。
因此，让我们说，它要 说3.3333，就是这样。
所以它不是能够真正表达 正是浮动是什么。
>> LAUREN卡瓦略：我们有一个有限的数量 比特，表示不
每一个十进制数将是 能够被精确地表示。
所以在这个例子中，如果我们 打印出0.1，我们现在是印刷
出20个名额。
>> LUCAS FREITAS：就像我告诉 你们这些家伙，你可以​​把任何数字。
但如果你只是做了两个地方， 你会得到0.10，但如果你把20
的地方，它会告诉你一堆 的的，因为这是你可以把什么
在记忆里，对不对？
>> 但在这里，直到0， 然后只是把它放在一个
一串随机数。
这是一种像一些 -
>> LAUREN卡瓦略：这是因为我们 不能够代表这个十进制
精确地与数 位的，我们有。
>> LUCAS FREITAS：然后是 计算机基本上是
给你一个垃圾数量。
这实际上是不可能的 数的值。
>> 观众：这是亲如 它可以得到[听不清]
使用[听不清]。
>> LAUREN卡瓦略：的言下之意 这是一个让我们说，而不是
为0.100014，什么的， 如果它是0.0999 -
好，好。
让我们假设实际的答案 到，这是0.9999999。
这是非常接近1，但 它不完全1。
这是0.99999。
>> 这意味着，如果我采取0.999， 我投它为int，我得到0。
我不明白1。
>> LUCAS FREITAS：因为记得，铸造 从浮到整数，你只是
忽略所有的小数位。
你不理会他们。
有没有这样的东西作为围捕 或向下运行时，强制转换。
其实，有这个功能， 做四舍五入，这是非常
重要的，但你只是认为，当 你做类型转换，它只是
要删除一切。
所以，即使你有0.99999，这是怎么回事 就这样给0，如果你的类型转换
[听不清]的整数。
>> LAUREN卡瓦略：所以只是真正意识到 在精确的浮点
尤其是当你开始 使用花车在PSET1。
但通过应该走 提醒你这一点。
>> LUCAS FREITAS：实际上，它真的 难，例如，如果我这样做
浮动答案1比等于1.0 10，然后浮答案2
等于10.0比100.0。
它们是相同的号码，对不对？
0.1，对不对？
1比10或10比100。
但现在，如果我尝试看看的平等， 就像如果答案1等于回答2，
也许它不会实际去 是相同的东西。
所以彩车是有点像那个。
他们喜欢做的平等。