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, 也許它不會實際去 是相同的東西。 所以彩車是有點像那個。 他們喜歡做的平等。