好的。 所以,現在讓我們來談談什麼 在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。