好吧。 所以,现在让我们来谈谈什么 在programming--真正有用的 条件语句。 因此,条件表达式 让你的程序 做出决定并采取不同的 在路上,一些叉 我前面提到一点, 取决于变量的值, 或基于什么在用户输入 程序员,在命令行中, 或者如果你有一个提示 或类似的东西。 C有几个不同的方式来 表示条件表达式, 我们有时也称之为一个 在程序中条件分支。 而其中的一些要看看 非常熟悉你从头开始, 因此,我们甚至会拉他们 并排,只是 您可以进行类比在你的脑袋。 因此,if--如果是一个漂亮 简单的条件。 如果您还记得 划痕这里权 您可以填写的是六边形 用蓝色表示,如果按下鼠标 或者,如果x小于10, 或类似的东西。 然后,如果x是小于10, 或者如果鼠标实际上,下, 所有的内部的代码 一块拼图将执行。 所有适合的东西 这里面的C型。 同样,我们是否有 如果左侧存在。 如果布尔表达式, 而我只是用 作为替代布尔之一 表达式我们前面所讨论的, 大括号,靠近大括号。 所以想开卷曲 支撑和封闭大括号 作为排序类似于夹心 IF块的右侧影响 从头开始。 如果布尔表达式 在if语句是真实的, 代码那么所有的行 大括号 将顺序执行 从上到下。 如果布尔表达式 是假的,我们将 跳过之间的一切 花括号,因为我们只 想要走这条岔路 如果布尔表达式为true。 我们可以借此一步 进一步,如果别的。 因此,这划痕块 非常相似的一个 我们看到就在一秒钟前,除 它需要基于两个不同的路径 上会发生什么。 因此,如果鼠标下降, 或者如果x低于10, 我们做的一切,就是在两者之间 首先叉,首先C., 否则,如果鼠标 向上,或x是不小于10, 我们将竭尽全力在第二盘。 而这类似于你所看到的 这里C.如果布尔表达式, 做的东西 第一套大括号。 否则,做的东西 第二盘大括号。 因此,如果布尔 表达式为true,我们将 做的第一组之间无论是。 如果布尔表达式为 假的,这将引发其他人, 而且我们在做什么的 第二组花括号。 再次,从上到下,所有 线路中的大括号之间。 在C语言中,它可以创建 一个的if-else if-else的产业链。 事实上,你可以拥有的if-else if-else的 如果其他,如果,等等等等等等 上。 在划痕,这需要 嵌套的块。 您添加的if-else,你不得不 把别人的里面一个又一个, 等,它得到了一种 嵌套和复杂。 但是,C,我们没有做到这一点。 我们可以真正地有 它是一个链条是这样的。 此外,如你所料,所有的 这些分支相互排斥。 你永远只能走 下的一个分支。 如果这是真的。 否则,如果这是事实。 否则,如果这是事实。 否则,做到这一点。 因此,所有在这里为四个分支 例子是相互排斥的。 这是一个的if-else if-else的产业链。 这是可能虽然, 有时非常有用, 创造链的不 互斥的分支。 在这个例子中,只有第三和 第四分支相互排斥。 这可能是因为你可以 满足第一条件, 你能满足 第二个条件, 你能满足 第三condition--在这种情况下 你会往下走的第一家分行, 然后你去了第二个分支, 那么你会下降的第三个分支。 或许你满足第一 条件,第二条件, 但你不符合 第三个条件。 在这种情况下你去第一 支和第二支, 然后第四个分支, 这样做的原因是,其他 将仅绑定到最近如果。 因此,即使有 一个人在这里,那 并不一定创造一个相互 一切的独家链。 这只是表达 有布尔 表达3--这就是 互相排斥的人。 因此,它是可能的,并 有时是非常有用的, 正如我所说,创造链 不是相互排斥的分支。 让我们来看看不同 样的条件,这 在划痕你以前没有见过。 有一种叫 switch语句。 switch语句是 那种整齐的,因为它是 一个条件语句,它允许 您可以指定不同的情况, 而不是依赖于布尔 表达式来做出决定为您服务。 因此,例如,让我们说 我有这个程序, 我要问的用户 提供意见给我。 所以我说,INT X =获取INT() 如果你不熟悉呢, 得到int是一个函数,它是 也包括在CS50库, 所以,如果你#包括CS50.H你有 访问获得INT()和它的所有 cousins​​-- GetFloat, GetString的,等等。 基本上是获取功能,每 我们已经讨论过的数据类型。 所以诠释x等于调用getInt。 基本上发生了什么 是我在终端。 我要求用户在键入一个数字。 在这里,我切换 我在做什么,这取决于 哪些用户键入的。 所以,如果他们输入一个,我打印出来的。 然后,我打破。 如果输入两个,我打印了两次。 然后,我打破。 重要的是要 每种情况下的突破 因为否则就会落空。 所以,如果我没有任何 符那里,并且用户 类型化的,会发生什么,它是 将打印一,二,三,对不起。 这是一种奇怪的现象,对吧? 你可能会这样认为。 但是,实际上有一些情况下, 这可能是一个非常有用的东西。 所以这里有一个开关的另一个例子 声明中,我省略了断裂。 但我这样做的目的。 所以会发生什么? 想想一秒钟。 你甚至可以暂停视频。 这里发生的事情,如果 在用户键入4? 所以,我要求用户输入。 而他们所提供的价值4。 什么会打印,当我做到这一点? 上一张幻灯片,有 所有病例之间的休息时间。 所以它只是 印刷四,然后停止。 但在这种情况下,也不会。 会发生什么事是你 将下降至每一种情况下。 因此,在这种情况下,我已经组织了我的情况下, 在这样一种方式,如果用户键入4, 我将打印四,三, 二,一,点火起飞。 如果他们输入5,我将开始 五,做同样的事情。 如果输入1,我会 只是做一个,升空。 因此,在这种情况下,我使用 开关一种巧妙地使 我不打算回落 在所有的情况下。 但通常你可能会 希望所有的人之间的断裂, 除非你有一个情况 像这样的地方你 那种利用的事实,你会 落空的情况下,没有休息。 所以这是主要的第二 类型的条件语句。 其中最后一个是:?所以,我 有一些C代码的两个片段在这里。 一个在左边,另一个在右边。 在一个在左边应该 可能是相当熟悉。 我诠释的X. 而我也许应该 已要求用户 for--这也许应该是int x 等于调用getInt,或者类似的东西。 然后我做决定。 如果某些布尔表达式为 如此,为x的值5。 否则,为x的值6。 这左边也许应该 从我们的讨论相当熟悉 。如果其他人只是刚才。 你会惊讶地知道 该右侧的线 做同样的事情? 所以,这就是所谓的:有时 被称为三元运算符。 而且它很酷。 它通常用来作为一个可爱的把戏。 但是,它可以让你做的是 模拟一个用if else用非常小的, 真的平凡短 条件分支。 您通常不会使用:如果您 有6行代码每组之间 对大括号。 但如果你只是 作出快速的决定, 如果你打算做一件事 或者其他的,这是非常简单的, 这可能是怎样的一个例子 做到这一点的?三元运算符。 所以诠释x等于体现在哪里? 问题后的事 标志就是X的值 会如果表达式为true。 之后的事情 结肠癌是X的值 是,如果表达式是假的。 所以我问自己, 是表达真实的? 如果是,为x的值5。 如果不是的话,为x的值6。 此外,就像我说的。 这通常只是一个可爱的把戏。 有时,如果你成为 真舒服, 你这样做,因为它看起来 很酷在你的程序中。 一般来说,我提出它 你现在让你熟悉它 如果你看到它。 但是,当然知道你没有 把它写在你的任何代码。 但它是值得熟悉, 因为你一定会遇到 的代码在这里片段和 在那里有这样的:?语法, AKA三元运算符,使用。 就这么简单的总结 什么条件句是, 哪些选项可用 您在C.你有如果,如果,否则, 如果否则如果,等等。 您可以使用布尔表达式 对于那些做出决策。 随着switch语句使用 分立的情况下作出决定。 你会具体说,如果是 一个,或者如果它是两个,如果是三, 我会做这件事情,或者 这件事情,或者这件事情。 和:可以被用来代替 很简单的if-else分支, 或者如果其他连锁店,使 你的代码看起来有点奇特。 我是道格·劳埃德。 这是CS50。