1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN:這是 更舒適的節, 3 00:00:13,351 --> 00:00:16,309 但是,這並不意味著,如果你 覺得你是不是更舒服 4 00:00:16,309 --> 00:00:18,420 你不會學到的東西在這裡。 5 00:00:18,420 --> 00:00:20,600 因此,讓我們開始吧。 6 00:00:20,600 --> 00:00:22,819 你有滑梯 直入事情。 7 00:00:22,819 --> 00:00:24,360 難道我只是把它的權利嗎? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 開關筆記本電腦。 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> 艾里遜:你不想要 自我介紹一下,羅布? 12 00:00:32,950 --> 00:00:34,090 >> 羅布·鮑登:哦,我搶。 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 這是我的第五個年頭TF-ING CS50。 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL:我是加布里埃爾。 17 00:00:39,650 --> 00:00:41,610 我是CS50的頭TF。 18 00:00:41,610 --> 00:00:44,009 我是TF在去年和今年。 19 00:00:44,009 --> 00:00:46,675 艾里遜:我是艾莉森,這 是我的第二個年頭TF-ING CS50。 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> 羅布·鮑登:好吧,那麼 這個東西在左邊, 22 00:00:50,825 --> 00:00:52,250 希望你以前見過它。 23 00:00:52,250 --> 00:00:54,112 如果不是因為你 下載為自己, 24 00:00:54,112 --> 00:00:55,570 你應該已經看到了在課堂上。 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 所以這是CS50家電,和他 做了一定程度的相關描述 27 00:01:01,320 --> 00:01:01,880 在演講。 28 00:01:01,880 --> 00:01:06,890 但基本上它只是你 正在運行的操作 29 00:01:06,890 --> 00:01:10,550 您的操作系統中的系統 系統,使我們可以給你 30 00:01:10,550 --> 00:01:12,540 無需計劃 不用擔心哦是這樣的 31 00:01:12,540 --> 00:01:15,989 上班在Windows上 和Mac,或者如果你們中的一些 32 00:01:15,989 --> 00:01:17,280 已經使用Linux,Linux操作系統。 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 這只是應該 是一種常見的演奏 35 00:01:20,240 --> 00:01:23,010 字段,以便每個人都有 完全相同的環境。 36 00:01:23,010 --> 00:01:25,344 >> 所以,如果你還沒有 下載了這個已經, 37 00:01:25,344 --> 00:01:28,510 你應該下載它,因為你 會需要它的習題集。 38 00:01:28,510 --> 00:01:32,335 並且它是一個2千兆字節 下載,所以它可能需要一段時間。 39 00:01:32,335 --> 00:01:33,780 在哈佛,它會走的快。 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 所以CS50設備。 42 00:01:37,440 --> 00:01:41,980 >> 現在,在開始的時候,我們要 說說只是一堆命令行 43 00:01:41,980 --> 00:01:46,880 的東西,所以通過這一點,我的意思是工作 在這邊這個小環境。 44 00:01:46,880 --> 00:01:53,230 並注意所有的東西 我說就在這裡,現在 45 00:01:53,230 --> 00:01:56,900 會,如果你的內部工作 組件內的端子, 46 00:01:56,900 --> 00:02:00,790 或者,如果你是內 在gedit中終端窗口 47 00:02:00,790 --> 00:02:02,090 內的器具的。 48 00:02:02,090 --> 00:02:03,770 所以這些環境是相同的。 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> 但我會去三分之一的路線。 51 00:02:07,270 --> 00:02:12,200 並注意倒在這裡 這裡有點IP地址。 52 00:02:12,200 --> 00:02:15,940 所以,你不必 做到這一點,但這個IP 53 00:02:15,940 --> 00:02:19,700 address--現在如果我 - 除非 它阻止這件事情。 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK,這樣IP地址 過在終端 56 00:02:27,000 --> 00:02:31,090 這裡 - 所以這個終端上 這裡是我的Mac終端。 57 00:02:31,090 --> 00:02:34,540 因此,這是目前沒有辦法 與設備在所有相關聯。 58 00:02:34,540 --> 00:02:39,360 如果你使用的是Windows,那麼你 將需要下載的東西 59 00:02:39,360 --> 00:02:44,430 專門為此,特別 人們往往用膩子,P-U-T-T-Y。 60 00:02:44,430 --> 00:02:50,700 >> 所以,我什麼都做的是類型 SSH和然後該IP地址。 61 00:02:50,700 --> 00:02:54,030 好吧,jharvard在該IP地址。 62 00:02:54,030 --> 00:03:00,150 所以192.168.24.220。 63 00:03:00,150 --> 00:03:02,127 這個可怕的消息,忽略它。 64 00:03:02,127 --> 00:03:02,710 只需輸入yes。 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 這是CS50在一個盒子裡。 67 00:03:06,030 --> 00:03:07,460 它會詢問你的密碼。 68 00:03:07,460 --> 00:03:11,910 >> 所以在很多這些上下文中的 它要求輸入密碼,[聽不清]。 69 00:03:11,910 --> 00:03:15,670 我們已經得到了很多的問題在哪裡 它說,它實際上不是打字。 70 00:03:15,670 --> 00:03:20,011 它不會告訴你的人物 密碼在您鍵入,如果有的話, 71 00:03:20,011 --> 00:03:23,010 對於一個安全功能,因為如果 有人找你的肩膀上 72 00:03:23,010 --> 00:03:25,870 他們看到明星明星 明星星,那麼他們 73 00:03:25,870 --> 00:03:28,640 知道你的密碼 是四個大字。 74 00:03:28,640 --> 00:03:32,660 這樣的想法是它會詢問 您的密碼,請鍵入。 75 00:03:32,660 --> 00:03:34,490 它不會顯示 你的字符, 76 00:03:34,490 --> 00:03:36,090 但它實際上是接受他們。 77 00:03:36,090 --> 00:03:39,210 在這種情況下,任何時候你 曾經看到一個密碼提示 78 00:03:39,210 --> 00:03:42,280 處理設備,所述 密碼將是深紅色的。 79 00:03:42,280 --> 00:03:43,270 所以緋紅。 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> 現在這裡的這裡面 窗口是在我的Mac上, 82 00:03:50,550 --> 00:03:54,120 我基本上有 完全相同的看法 83 00:03:54,120 --> 00:03:57,040 作為終端的內部 在產品中。 84 00:03:57,040 --> 00:03:58,470 所以,你不必這樣做。 85 00:03:58,470 --> 00:04:01,300 你可以做一切你 希望該設備的內部。 86 00:04:01,300 --> 00:04:05,140 我幾乎從來沒有真正做 任何在產品中。 87 00:04:05,140 --> 00:04:09,440 我幾乎總是最小化,現在 我正在通過SSH進入組件。 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> 如果有什麼事情,如果你 具有較慢的計算機, 90 00:04:14,180 --> 00:04:15,820 你可能會注意到一個區別。 91 00:04:15,820 --> 00:04:18,839 我這樣做是因為我喜歡 這個終端窗口。 92 00:04:18,839 --> 00:04:20,881 它有像某些功能 我可以分割窗口, 93 00:04:20,881 --> 00:04:22,672 現在我可以SSH方式 通過設備。 94 00:04:22,672 --> 00:04:24,105 我有兩個SSH的一次事情。 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 如果你的電腦是特別慢 和你的工作在家電, 97 00:04:32,250 --> 00:04:35,200 你知道這是 真的laggy,等等。 98 00:04:35,200 --> 00:04:38,220 往往要快很多 如果你是SSH-ED英寸 99 00:04:38,220 --> 00:04:40,960 但除此之外,你可以工作兩種方式。 100 00:04:40,960 --> 00:04:42,388 >> 聽眾:什麼是SSH是什麼意思? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> 羅布·鮑登:安全殼, 類似的東西? 103 00:04:47,479 --> 00:04:48,270 什麼是SSH是什麼意思? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL:安全殼。 106 00:04:55,130 --> 00:04:56,463 艾里遜:這只是安全殼。 107 00:04:56,463 --> 00:04:57,720 羅布·鮑登:安全殼。 108 00:04:57,720 --> 00:05:03,700 這是一個協議,你 - 這是 安全協議,從而進行加密。 109 00:05:03,700 --> 00:05:06,850 讓人無法窺探的網絡 看到你說要什麼有什麼 110 00:05:06,850 --> 00:05:08,120 你是SSH-ED來。 111 00:05:08,120 --> 00:05:12,900 而事實上,在古代 CS50的日子,因此在2009年 112 00:05:12,900 --> 00:05:19,300 當我還是個大一的方式, 你曾CS50習題集, 113 00:05:19,300 --> 00:05:22,490 是你的SSH-ED一些服務器 我們給您訪問, 114 00:05:22,490 --> 00:05:23,497 而你的工作在那裡。 115 00:05:23,497 --> 00:05:25,330 所以,你沒有這個 圖形設備。 116 00:05:25,330 --> 00:05:26,160 你沒有gedit中。 117 00:05:26,160 --> 00:05:28,930 你沒有這些東西, 你可以視覺化的指向和點擊。 118 00:05:28,930 --> 00:05:30,346 你有這個接口才能正常工作。 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 我更喜歡在此界面中工作。 121 00:05:33,716 --> 00:05:36,090 那麼,我們要的一部分 將要在現在 122 00:05:36,090 --> 00:05:39,560 一堆的 命令,你應該 123 00:05:39,560 --> 00:05:42,095 開始熟悉的 你在使用過程中走。 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 而且說實話,當你 習慣了,它 126 00:05:45,790 --> 00:05:48,220 這麼多快 在這種環境中工作 127 00:05:48,220 --> 00:05:53,690 比它與取景工作, 拖動和點擊的東西。 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> 所以,我們在這裡。 130 00:05:57,210 --> 00:06:01,779 現在我只是SSH-ED在等 默認location--你 131 00:06:01,779 --> 00:06:04,820 看到了一些在課堂上這些命令, 但我們去了所有的人了。 132 00:06:04,820 --> 00:06:08,060 默認位置我們 在是主目錄。 133 00:06:08,060 --> 00:06:11,520 和目錄,只是 另一個字的文件夾。 134 00:06:11,520 --> 00:06:13,310 所以我們在主目錄中。 135 00:06:13,310 --> 00:06:15,889 輸入ls,列出文件 在這個目錄中。 136 00:06:15,889 --> 00:06:17,430 顯然,我創建了一個blah.c更早。 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 因此,我們有一個桌面目錄。 139 00:06:20,472 --> 00:06:21,930 你注意到了語法高亮? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 淡藍色的高亮顯示 目錄和直白 142 00:06:32,900 --> 00:06:34,380 表示只是一個純文本文件。 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 所以有將要 你看到一些其他顏色。 145 00:06:37,690 --> 00:06:41,240 一個可執行文件,很可能會 是綠色的或類似的東西。 146 00:06:41,240 --> 00:06:44,820 好了,我們是在主目錄中。 147 00:06:44,820 --> 00:06:48,970 >> 現在,如果我想進入一個不同的 目錄中,CD是我想要的命令。 148 00:06:48,970 --> 00:06:52,720 所以,改變目錄,然後你 通過該目錄的名稱 149 00:06:52,720 --> 00:06:54,020 你想進入。 150 00:06:54,020 --> 00:06:55,780 所以在這裡我們有四個選項。 151 00:06:55,780 --> 00:07:03,397 我可以進入下載了,現在我們看到的 這裡已經更新了這個括號 152 00:07:03,397 --> 00:07:04,480 說我在〜/下載。 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> 那麼,什麼是波浪? 155 00:07:06,800 --> 00:07:10,640 這是一個簡寫 你的home目錄。 156 00:07:10,640 --> 00:07:15,260 所以,你做的幾乎一切都會好起來 是相對於你的home目錄, 157 00:07:15,260 --> 00:07:20,620 和PWD只是一個命令 我在一年使用一次即 158 00:07:20,620 --> 00:07:22,420 只是打印當前目錄。 159 00:07:22,420 --> 00:07:25,730 所以你看這裡 〜/下載真正解決 160 00:07:25,730 --> 00:07:26,896 到/ home / jharvard /下載。 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 因此,/家用/ jharvard是我的主目錄。 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> 因此,我們可以CD點點。 165 00:07:39,400 --> 00:07:47,800 現在,點點是一個特殊的目錄 總是指一個目錄了。 166 00:07:47,800 --> 00:07:51,730 所以,如果我在〜/下載,那麼CD點 點是要帶我去波浪線。 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 什麼是我們認為CD點點 是要帶我去嗎? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 它會帶我到/ home。 171 00:08:00,570 --> 00:08:04,450 因此,通過打印工作目錄波浪線, 我在現在的/ home / jharvard。 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 從一個目錄時, 現在,這裡說的/ home。 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> 現在CD點點。 176 00:08:17,180 --> 00:08:20,910 現在我在根目錄下, 你不能再這樣做。 177 00:08:20,910 --> 00:08:23,340 你會僅僅停留在 根目錄下去。 178 00:08:23,340 --> 00:08:26,700 根目錄下有一大堆 ,如果你想看看的東西, 179 00:08:26,700 --> 00:08:27,410 您可以。 180 00:08:27,410 --> 00:08:29,700 例如,如果我去 成箱,包含 181 00:08:29,700 --> 00:08:35,789 所有這些二進制文件,如ls, 和CD,以及所有這些事情。 182 00:08:35,789 --> 00:08:38,630 因此,這些命令需要 存在於系統中的某個地方, 183 00:08:38,630 --> 00:08:40,820 它是在/ bin目錄下。 184 00:08:40,820 --> 00:08:44,530 但是你做的幾乎一切 將是從你的主目錄。 185 00:08:44,530 --> 00:08:49,490 和CD對此不承擔任何參數, 你可以說CD〜,不需要。 186 00:08:49,490 --> 00:08:51,810 CD將會給你帶來 回到你的home目錄。 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> 其中最後一個。 189 00:08:54,230 --> 00:09:00,200 CD - 將會給你帶來回 你是在最後一個目錄。 190 00:09:00,200 --> 00:09:04,080 所以,我只是cd'd連續兩次,所以我 最後的目錄是主目錄。 191 00:09:04,080 --> 00:09:11,520 如果我去削減斌,現在 讓我們上去,進入用戶。 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 用戶份額。 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 讓我們去的用戶份額。 196 00:09:15,940 --> 00:09:17,140 現在,我現在在用戶份額。 197 00:09:17,140 --> 00:09:19,320 CD - 早在箱中。 198 00:09:19,320 --> 00:09:22,980 所以這變得特別有用 當你have--,它會切換。 199 00:09:22,980 --> 00:09:25,660 所以用戶份額,回倉,倉份額。 200 00:09:25,660 --> 00:09:27,250 >> 所以這變得非常有用。 201 00:09:27,250 --> 00:09:33,150 你會發現自己有很多, 很多很多嵌套的目錄。 202 00:09:33,150 --> 00:09:37,370 而你想要做的事 真正的快速的上一級目錄。 203 00:09:37,370 --> 00:09:40,330 你去到該目錄,使 變化之類的東西, 204 00:09:40,330 --> 00:09:42,400 現在你想要去 回到你在哪裡。 205 00:09:42,400 --> 00:09:43,660 CD - 。 206 00:09:43,660 --> 00:09:47,320 我總是很沮喪 當我正好去 207 00:09:47,320 --> 00:09:49,630 該目錄我 想幹的工作英寸 208 00:09:49,630 --> 00:09:52,670 我總是感到沮喪時,我做了 這兩個步驟,而不是一個步驟, 209 00:09:52,670 --> 00:09:55,715 因為這意味著CD - 是怎麼回事 帶入的中間位置 210 00:09:55,715 --> 00:09:57,010 而不是在這裡我想去的地方。 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> 所以我們看到所有的列表文件。 213 00:10:01,450 --> 00:10:03,300 我們知道如何解決為止。 214 00:10:03,300 --> 00:10:09,900 所以,現在讓我們來談談編輯文件。 215 00:10:09,900 --> 00:10:18,790 所以在這個過程中,你幾乎 總是希望用gedit。 216 00:10:18,790 --> 00:10:24,410 如果你願意,你可以採取的下一個步驟 並開始學習命令行的文本 217 00:10:24,410 --> 00:10:25,240 編輯器。 218 00:10:25,240 --> 00:10:27,560 因此,不同的選項存在。 219 00:10:27,560 --> 00:10:31,760 >> 和那些可能 將與您, 220 00:10:31,760 --> 00:10:35,340 我們有納米時,Vim,和Emacs。 221 00:10:35,340 --> 00:10:40,196 因此,Nano是初學者 命令行的文本編輯器。 222 00:10:40,196 --> 00:10:42,985 因此,納米,讓我們去 blah.c我剛才創建的。 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 這只是這個標準的C文件。 225 00:10:46,480 --> 00:10:51,540 你看到一大堆的東西 在屏幕底部的繼續, 226 00:10:51,540 --> 00:10:54,100 顯然blah.c 這包含C代碼。 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> 所以在這個特定的編輯器, 它是說在bottom-- 229 00:11:00,330 --> 00:11:06,290 現在這個插入符號的象徵, 我們看到的這款^ G,^ X,^ o。 230 00:11:06,290 --> 00:11:10,310 因此,在幾乎所有 的背景下,你看, 231 00:11:10,310 --> 00:11:13,530 你可能會看到插入符號符號 其他地方上網,對堆棧溢出, 232 00:11:13,530 --> 00:11:14,450 類似的東西。 233 00:11:14,450 --> 00:11:16,970 它幾乎總是指控制。 234 00:11:16,970 --> 00:11:21,590 因此,要退出我想做的事情 十,控制控制X,退出。 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 我可以用我的箭 鍵移動。 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 請注意,我不能指向和點擊爽快。 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 你需要用你的箭頭 鍵移動。 241 00:11:35,010 --> 00:11:36,950 有可能是一個設置 指向和點擊。 242 00:11:36,950 --> 00:11:40,000 >> 但是讓我們做出一些改變。 243 00:11:40,000 --> 00:11:42,100 現在控制X去退出。 244 00:11:42,100 --> 00:11:44,120 它會說保存修改過的緩衝區。 245 00:11:44,120 --> 00:11:47,900 現在的提示,Y(是),N(否)。 246 00:11:47,900 --> 00:11:49,900 控制下取消。 247 00:11:49,900 --> 00:11:50,780 我只想說是的。 248 00:11:50,780 --> 00:11:51,709 文件名來寫。 249 00:11:51,709 --> 00:11:53,500 默認的是文件 它已經是了。 250 00:11:53,500 --> 00:11:54,230 按Enter鍵。 251 00:11:54,230 --> 00:11:54,740 行。 252 00:11:54,740 --> 00:11:58,580 現在,我剛剛編輯的文件, 保存它,並且它被改變。 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> 所以納米是最簡單的 文本編輯器就習慣了。 255 00:12:03,000 --> 00:12:05,520 在替代品的Vim和​​Emacs。 256 00:12:05,520 --> 00:12:11,250 這些都是更高層次的文本編輯器 有一個非常陡峭的學習曲線。 257 00:12:11,250 --> 00:12:13,740 所以我個人的偏好是Vim的。 258 00:12:13,740 --> 00:12:17,175 並且它有各種各樣的選擇。 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 一旦你習慣 它,你將永遠不會 261 00:12:24,070 --> 00:12:26,900 想要去的任何其他 文本編輯器,因為你只是 262 00:12:26,900 --> 00:12:29,590 有這麼多的事情 在這些提供給你, 263 00:12:29,590 --> 00:12:31,690 但它需要一個真正的 很長一段時間來學習。 264 00:12:31,690 --> 00:12:36,000 因此,也許你只是想逼 自己現在要習慣它, 265 00:12:36,000 --> 00:12:38,130 但我要說這是值得的。 266 00:12:38,130 --> 00:12:39,660 但做起來很難。 267 00:12:39,660 --> 00:12:41,220 >> 然後Emacs的。 268 00:12:41,220 --> 00:12:44,940 我一直在Emacs中掙扎,因為 我知道該怎麼做絕對沒有。 269 00:12:44,940 --> 00:12:47,755 顯然Emacs是默認情況下不 安裝在設備上。 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 我們可能會補充說, 作為默認安裝的。 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 一旦你學會了一 VIM或Emacs,有 274 00:13:02,390 --> 00:13:04,810 沒有令人信服的理由 不斷學習,另外, 275 00:13:04,810 --> 00:13:07,570 但它是一個完全不同的風格。 276 00:13:07,570 --> 00:13:10,460 OK,這樣的編輯文本文件。 277 00:13:10,460 --> 00:13:13,374 >> 聽眾:如果你被卡 在Vim的現在,怎麼辦we-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> 羅布·鮑登:有 多種模式的Vim中, 280 00:13:20,800 --> 00:13:23,770 並且有全 教程學習Vim的。 281 00:13:23,770 --> 00:13:27,390 如果你恰巧是這樣 在以插入模式 282 00:13:27,390 --> 00:13:29,930 輸入文本,你可以 輸入以各種方式 283 00:13:29,930 --> 00:13:31,610 但我是你如何進入插入模式。 284 00:13:31,610 --> 00:13:34,780 或擺脫任何特殊的 模式你在,只是逃命。 285 00:13:34,780 --> 00:13:37,640 而你只是來砸逃生得到 出任何嵌套模式的研究。 286 00:13:37,640 --> 00:13:40,360 剛剛好,現在我又回到正常模式。 287 00:13:40,360 --> 00:13:43,790 >> 因此在正常模式中,一個冒號。 288 00:13:43,790 --> 00:13:45,160 你看它出現在底部。 289 00:13:45,160 --> 00:13:46,240 然後Q。 290 00:13:46,240 --> 00:13:52,600 所以Q將退出,如果你已經進行了更改, 而我 - 因為我已改變? 291 00:13:52,600 --> 00:13:54,180 我顯然所做的更改。 292 00:13:54,180 --> 00:13:57,264 所以,如果你已經進行了更改,它會 說你可以把一個感嘆號。 293 00:13:57,264 --> 00:13:58,430 我要叫它一聲。 294 00:13:58,430 --> 00:14:02,040 所以,你可以把一個班只 退出而不做任何事情, 295 00:14:02,040 --> 00:14:04,520 或結腸WQ將保存並退出。 296 00:14:04,520 --> 00:14:06,580 因此,瓦特一般是寫。 297 00:14:06,580 --> 00:14:08,300 所以寫的文件。 298 00:14:08,300 --> 00:14:09,810 我可以寫,然後退出。 299 00:14:09,810 --> 00:14:13,606 或者你可能只是 QX滿貫,Q爆炸剛 300 00:14:13,606 --> 00:14:16,230 要離開那裡,無論 那你所做的任何更改。 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> 好吧,那麼現在讓我們來 go--我們可以創建文件。 303 00:14:28,940 --> 00:14:30,890 讓我們開始刪除文件。 304 00:14:30,890 --> 00:14:35,450 我就隨便扔在一個 很快新的命令,觸摸。 305 00:14:35,450 --> 00:14:38,200 因此,觸摸FOO。 306 00:14:38,200 --> 00:14:39,340 觸摸吧。 307 00:14:39,340 --> 00:14:40,220 觸摸巴茲。 308 00:14:40,220 --> 00:14:42,810 如果我LS,現在我們看到的 這些文件的存在。 309 00:14:42,810 --> 00:14:44,315 他們完全是空的。 310 00:14:44,315 --> 00:14:47,178 因此,觸摸僅僅是一個簡單的 1的方​​法,[聽不清]。 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 二,技術上只是狀態 它,它更新的時間戳。 313 00:14:54,640 --> 00:14:58,470 所以,你所創建的任何文件都有 與之相關聯的時間戳。 314 00:14:58,470 --> 00:15:01,330 所以巴茲上創建 9月14日,在16時21分。 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 它現在是16點22分,所以,如果 我再碰巴茲我們 317 00:15:06,670 --> 00:15:11,420 看到巴茲最 最近修改的16點22分。 318 00:15:11,420 --> 00:15:17,680 但除此之外,我幾乎從來沒有 看著文件上的時間戳。 319 00:15:17,680 --> 00:15:20,490 所以觸摸,在這裡我只是用 它創建一些快速的文件。 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> 好了,所以現在RM是 命令,我們關心這裡。 322 00:15:27,400 --> 00:15:28,665 我們可以RM噓聲。 323 00:15:28,665 --> 00:15:31,000 說定期刪除空文件噓。 324 00:15:31,000 --> 00:15:34,070 我們可以鍵入y,而現在它的排除。 325 00:15:34,070 --> 00:15:34,850 RM巴茲。 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 定期刪除空文件 巴茲和類型N(否)。 328 00:15:38,620 --> 00:15:40,060 現在它不會被刪除。 329 00:15:40,060 --> 00:15:41,240 所以,酒吧和巴茲依然存在。 330 00:15:41,240 --> 00:15:42,232 富走了。 331 00:15:42,232 --> 00:15:43,148 GABRIEL繼續說。 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 羅布·鮑登:太好了。 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 因此,惱人的消息 在這裡,除去常規empty-- 336 00:15:50,370 --> 00:15:52,390 你在做什麼在哪兒? 337 00:15:52,390 --> 00:15:54,030 定期刪除空文件。 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 因此,如果我們不想成為 受該消息困擾, 340 00:16:01,610 --> 00:16:05,340 我們可以在這個-f扔 標誌,並所以這是力。 341 00:16:05,340 --> 00:16:11,330 而現在,如果我RM -f,它不會 說你想刪除此文件。 342 00:16:11,330 --> 00:16:12,040 它會就去做。 343 00:16:12,040 --> 00:16:13,720 和LS,我看不到了吧那裡。 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> 現在這是一個潛在的 危險的命令。 346 00:16:18,021 --> 00:16:19,020 它往往不會太糟糕。 347 00:16:19,020 --> 00:16:22,240 我們會回來的第二個怎麼樣 它可以變得非常危險。 348 00:16:22,240 --> 00:16:28,740 讓我們創建一些臨時目錄。 349 00:16:28,740 --> 00:16:30,880 MKDIR,其它命令。 350 00:16:30,880 --> 00:16:34,880 所以MKDIR是一個命令 這使得一個目錄。 351 00:16:34,880 --> 00:16:40,650 而現在通過LS,我們看到這個漂亮的光 藍色突出顯示臨時目錄。 352 00:16:40,650 --> 00:16:42,295 我可以用cd命令進入溫度。 353 00:16:42,295 --> 00:16:44,590 我可以命令mkdir foo中。 354 00:16:44,590 --> 00:16:46,330 cd到foo中。 MKDIR吧。 355 00:16:46,330 --> 00:16:46,860 cd進入酒吧。 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> 所以我們看到,我們可以很容易地得到 進了一些漂亮的深層嵌套。 358 00:16:54,300 --> 00:16:56,385 現在我怎麼刪除一個目錄? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 命令rmdir。 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 所以,如果我只是直接嘗試RM, 像我們做一個常規文件, 363 00:17:03,540 --> 00:17:06,420 RM桿將要 說不能刪除吧。 364 00:17:06,420 --> 00:17:07,569 它是一個目錄。 365 00:17:07,569 --> 00:17:10,619 有一個特殊的命令 除去種目錄。 366 00:17:10,619 --> 00:17:12,900 於是命令rmdir吧。 367 00:17:12,900 --> 00:17:13,710 現在酒吧已經一去不復返了。 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> 好了,命令rmdir我幾乎從來不使用。 370 00:17:22,680 --> 00:17:32,220 究其原因,現在being--我們 做一個常規文件的酒吧在這裡了。 371 00:17:32,220 --> 00:17:34,780 於是命令rmdir噓。 372 00:17:34,780 --> 00:17:35,760 命令rmdir。 373 00:17:35,760 --> 00:17:36,900 無法刪除foo中。 374 00:17:36,900 --> 00:17:38,420 目錄不是空的。 375 00:17:38,420 --> 00:17:43,420 所以,你不能使用在目錄中刪除 目錄下有東西在裡面。 376 00:17:43,420 --> 00:17:44,830 >> 所以,你有一些選擇。 377 00:17:44,830 --> 00:17:49,780 你可以進入該目錄,刪除 一切手動,然後走出來 378 00:17:49,780 --> 00:17:51,759 和rmdir目錄。 379 00:17:51,759 --> 00:17:53,050 這顯然聽起來很煩人。 380 00:17:53,050 --> 00:17:55,000 如果有成千上萬 在裡面的文件? 381 00:17:55,000 --> 00:17:58,119 嗯,你可以RM *。 382 00:17:58,119 --> 00:17:59,410 我們將在第二講*。 383 00:17:59,410 --> 00:18:00,870 這基本上意味著所有的事情。 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 但更重要的是,這樣RM -r。 386 00:18:05,470 --> 00:18:10,220 所以,RM -r--了很多 背景,-r表示遞歸, 387 00:18:10,220 --> 00:18:13,810 我們將談論什麼 遞歸裝置在幾個星期。 388 00:18:13,810 --> 00:18:18,630 但它基本上意味著導線 這個目錄的全部 389 00:18:18,630 --> 00:18:20,190 並取出了一切。 390 00:18:20,190 --> 00:18:24,420 >> 所以,RM -r富會說 陷入目錄富? 391 00:18:24,420 --> 00:18:25,210 是。 392 00:18:25,210 --> 00:18:26,800 定期刪除空文件foo /酒吧? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 是。 395 00:18:28,540 --> 00:18:29,760 刪除目錄FOO? 396 00:18:29,760 --> 00:18:30,260 是。 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 所以,現在foo和一切 在它已被刪除。 399 00:18:35,020 --> 00:18:42,370 >> 現在,可以得到特別煩 when--讓我們碰1,2摸,摸3。 400 00:18:42,370 --> 00:18:44,400 可能有一大堆的文件。 401 00:18:44,400 --> 00:18:49,060 如果我想,我可以創建 成千上萬的文件在這裡了。 402 00:18:49,060 --> 00:18:53,340 和RM -r FOO是怎麼回事 是相當惱人的。 403 00:18:53,340 --> 00:18:55,374 是的,是的,是的,是的,是的,是的。 404 00:18:55,374 --> 00:18:57,540 有很多文件,你 趕緊看看有多少次 405 00:18:57,540 --> 00:18:58,581 我會是類型。 406 00:18:58,581 --> 00:19:02,265 好了,我們只是看到了之前我們怎樣才能 擺脫無需輸入yes,-f的。 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 所以MKDIR富CD富觸摸1 2 3。 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 好了,命令rm -rf foo的是要 盲目地完全刪除foo中。 411 00:19:17,190 --> 00:19:17,960 沒有任何提示。 412 00:19:17,960 --> 00:19:18,650 什麼都沒有。 413 00:19:18,650 --> 00:19:20,040 富走了。 414 00:19:20,040 --> 00:19:23,830 >> 所以我傾向於使用這種 命令所有的時間。 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 這就是說,它是一個 很危險的命令, 417 00:19:27,830 --> 00:19:33,240 因為如果我做這樣的事 這一點,就不會提示你。 418 00:19:33,240 --> 00:19:34,730 它將會消失。 419 00:19:34,730 --> 00:19:40,140 和它發生相當頻繁, 甚至在更高級別的CS課程。 420 00:19:40,140 --> 00:19:42,070 有時我們會看到 一些地方的人 421 00:19:42,070 --> 00:19:48,360 說我不小心我們的RM RF-ED我的家 目錄和我所有的P組已經一去不復返了。 422 00:19:48,360 --> 00:19:52,422 而且它是毀滅性的, 但沒有垃圾桶。 423 00:19:52,422 --> 00:19:54,380 有沒有有什麼 供您檢索。 424 00:19:54,380 --> 00:19:55,330 這只是走了。 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 更糟糕的是 像RM -rf /。 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 所以我們剛才討論 該根目錄中。 429 00:20:01,140 --> 00:20:03,095 它擁有所有的 您的系統上的文件。 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 事情往往會變得相當凌亂 當您刪除之類的東西LS, 432 00:20:07,380 --> 00:20:10,280 和CD,以及所有那些。 433 00:20:10,280 --> 00:20:15,467 >> 聽眾:有什麼區別 RM,RF和rm *之間 434 00:20:15,467 --> 00:20:16,300 羅布·鮑登:所以RM * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> 艾里遜:問題是有什麼 RM,RF和rm *之間的差異。 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> 羅布·鮑登:所以RM *。 439 00:20:25,950 --> 00:20:31,910 明星一般是所有的 此目錄的內容。 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 冥思苦想其他的 方式呈現明星。 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 好吧,其實明星一般 指符合任何圖案。 444 00:20:44,780 --> 00:20:54,930 所以,如果我有一個名為DOG1的文件, 觸摸DOG2,觸摸CAT1,CAT2觸摸。 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 所以LS * 1將打印和CAT1 DOG1,因為明星可以填充 447 00:21:02,110 --> 00:21:06,270 在with--一個需要存在, 但明星可以是貓或狗。 448 00:21:06,270 --> 00:21:07,247 這是一個外卡。 449 00:21:07,247 --> 00:21:08,580 這就是我正在尋找的話。 450 00:21:08,580 --> 00:21:09,120 外卡。 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 或者我可以ls的狗*和 我還見到DOG1,DOG2。 453 00:21:13,960 --> 00:21:16,870 所以,那些上市文件 匹配特定的模式。 454 00:21:16,870 --> 00:21:18,150 您可以以這種方式使用ls命令。 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> LS * STAR匹配任何內容。 457 00:21:22,020 --> 00:21:25,710 因此,它會打印所有的 此目錄的內容 458 00:21:25,710 --> 00:21:27,290 因為所有的人都一致。 459 00:21:27,290 --> 00:21:30,130 它不會打印出任何東西 在上一級目錄。 460 00:21:30,130 --> 00:21:38,680 如果我有一個子目錄,foo和 摸1 2 3--所以現在如果RM *星, 461 00:21:38,680 --> 00:21:41,450 刪除CAT1,CAT2,DOG1,DOG2。 462 00:21:41,450 --> 00:21:42,340 無法刪除foo中。 463 00:21:42,340 --> 00:21:43,090 它是一個目錄。 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> 所以明星擴展到所有的 目錄中的文件。 466 00:21:50,340 --> 00:21:55,210 所以在技術上RM *好像是說 RM CAT1,CAT2,DOG1,DOG2,FOO。 467 00:21:55,210 --> 00:22:03,630 而RM -rf,技術上明星會 實現我們想要的東西,但RM -rf-- 468 00:22:03,630 --> 00:22:06,090 如果我走出這個 目錄,RM -rf溫度, 469 00:22:06,090 --> 00:22:08,890 那將進入溫度和 遞歸刪除一切。 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> 所以,明星是分開在那 了解by--所以這件事 472 00:22:21,060 --> 00:22:25,090 我正在運行,這個東西 這是促使我要命令 473 00:22:25,090 --> 00:22:28,770 然後執行和操作的 他們,我稱之為我的殼。 474 00:22:28,770 --> 00:22:31,930 所以這個shell本身就是一個程序。 475 00:22:31,930 --> 00:22:35,010 如果我想,我 可以運行位於/ bin / bash的。 476 00:22:35,010 --> 00:22:36,930 殼被稱為慶典。 477 00:22:36,930 --> 00:22:39,340 現在我們看到的東西 已經略有改變, 478 00:22:39,340 --> 00:22:42,200 那是因為我的設置 外殼有所不同。 479 00:22:42,200 --> 00:22:45,415 >> 但現在我在技術上運行 在我原來的殼殼, 480 00:22:45,415 --> 00:22:49,570 我可以退出該shell,現在 我回到我的頂級殼。 481 00:22:49,570 --> 00:22:55,240 說法的目的 這is--的明星。 482 00:22:55,240 --> 00:22:59,020 所以,明星是什麼 理解的是bash。 483 00:22:59,020 --> 00:23:04,260 於是命令rm -rf,-rf標誌 理解只是RM。 484 00:23:04,260 --> 00:23:06,380 它知道,當你 通過一個-rf你 485 00:23:06,380 --> 00:23:09,520 希望它遞歸刪除 所有的文件而不提示。 486 00:23:09,520 --> 00:23:13,960 明星被理解的東西 通過bash中,當你說RM *, 487 00:23:13,960 --> 00:23:16,890 bash中是不會說 哎RM *,取出明星。 488 00:23:16,890 --> 00:23:21,010 擊會說RM * 刪除CAT1,CAT2,DOG1,DOG2。 489 00:23:21,010 --> 00:23:24,305 它會自動將擴大 所有在該目錄中的文件。 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> 同樣波浪線是另一個 符號bash的理解。 492 00:23:33,140 --> 00:23:37,130 當你說CD〜,bash的擴展 那到你的home目錄。 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 其他問題這麼遠嗎? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK,所以我們要開始去快。 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> 選項卡中完成。 499 00:23:48,545 --> 00:23:49,670 只是把它扔到那裡。 500 00:23:49,670 --> 00:23:51,530 很多人不 意識到這一點的存在。 501 00:23:51,530 --> 00:23:55,060 所以,如果我輸入的CD陶氏,我 要進入下載。 502 00:23:55,060 --> 00:23:56,700 我並不需要鍵入nloads。 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 我可以打標籤。 505 00:24:00,770 --> 00:24:03,794 所以它識別出 陶氏是一家前綴 506 00:24:03,794 --> 00:24:05,710 不符合任何東西 否則在此目錄中, 507 00:24:05,710 --> 00:24:07,520 所以它會完成你們。 508 00:24:07,520 --> 00:24:08,610 現在我可以進入。 509 00:24:08,610 --> 00:24:10,110 >> 我也做了遞歸。 510 00:24:10,110 --> 00:24:11,205 於是命令mkdir foo中。 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 讓我們去到foo中。 513 00:24:13,300 --> 00:24:14,830 MKDIR吧。 514 00:24:14,830 --> 00:24:17,345 所以,要回我的家 目錄中,我可以看到下載。 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 現在再次打標籤, 自動將填foo中。 517 00:24:21,860 --> 00:24:22,880 這是唯一的目錄。 518 00:24:22,880 --> 00:24:25,340 再次擊中標籤,自動 去填寫吧。 519 00:24:25,340 --> 00:24:26,798 所以,現在我在(〜下載/富/條)。 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> 所以這個選項卡中完成, 每當我到辦公時間, 522 00:24:31,692 --> 00:24:33,400 而我站在 一個人的肩膀, 523 00:24:33,400 --> 00:24:40,470 他們要去RM D-O型W-N-L-O-A-D-S,我要死了。 524 00:24:40,470 --> 00:24:41,990 只是標籤,標籤,標籤,標籤。 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 所以肯定使用的標籤。 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 同樣和 下來,很多人 529 00:24:49,840 --> 00:24:51,930 只是碰巧 從來沒有觸及上下。 530 00:24:51,930 --> 00:24:54,870 它會經過以前 命令,所以如果你只是跑的東西, 531 00:24:54,870 --> 00:24:58,300 並且要再次運行它, 牽住了,直到你得到它。 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 行。 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> 這麼快,一些其他的事情。 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 讓我們重新回到溫。 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 讓我們創建一些文件。 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 所以在這裡,我只是 要列出一些單詞。 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 狗,貓,喵喵。 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 讓我們做狗,魚。 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 所以,現在代表是一個非常 有用的命令,你 548 00:25:32,320 --> 00:25:37,820 使用全搜索 對於一個特定的文本文件, 549 00:25:37,820 --> 00:25:40,910 而在技術上,你可以做真正的 複雜的表達式為它匹配。 550 00:25:40,910 --> 00:25:44,830 >> 所以在這裡,如果我用grep,什麼 我要搜索? 551 00:25:44,830 --> 00:25:49,130 比方說,我在尋找貓和 我要搜索所有這些文件。 552 00:25:49,130 --> 00:25:50,650 所以,我該怎麼做所有這些文件? 553 00:25:50,650 --> 00:25:51,900 星。 554 00:25:51,900 --> 00:25:54,939 因此,在文件中的一個,我有一隻貓。 555 00:25:54,939 --> 00:25:56,980 我大概可以有 稱它更好的東西, 556 00:25:56,980 --> 00:25:59,063 因為看起來像 行號什麼的。 557 00:25:59,063 --> 00:26:01,590 但在文件中的一個我與貓的線。 558 00:26:01,590 --> 00:26:04,160 在文件中的兩個我有貓行。 559 00:26:04,160 --> 00:26:07,280 所以,現在我可以看看裡面的文件之一, 看噢,該文件確實有貓。 560 00:26:07,280 --> 00:26:10,210 通知文件中的三個不匹配 因為貓是不是在那裡。 561 00:26:10,210 --> 00:26:13,882 我可以grep的喵。 562 00:26:13,882 --> 00:26:14,840 只有文件中的兩個有喵。 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> 因此,這可以結合, 再次,與-r,這 565 00:26:20,640 --> 00:26:23,580 正如我以前說過 通常意味著遞歸。 566 00:26:23,580 --> 00:26:29,800 所以,我可以在這裡拿出中,grep -r 任何情況下of--讓我們編輯 567 00:26:29,800 --> 00:26:32,010 這一次只是扔一隻貓在那裡。 568 00:26:32,010 --> 00:26:38,800 所以,用grep -r任何情況下 貓的整個目錄。 569 00:26:38,800 --> 00:26:41,600 它會遞歸 搜索所有子目錄。 570 00:26:41,600 --> 00:26:43,940 因此,在巴茲,還有貓。 571 00:26:43,940 --> 00:26:45,570 在溫度/ 2,還有貓。 572 00:26:45,570 --> 00:26:47,960 而在溫度/ 1有貓。 573 00:26:47,960 --> 00:26:50,045 所以這是文件中進行搜索。 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> 現在,你也可以使用一個發現。 576 00:26:55,090 --> 00:26:59,640 等發現是專門約 尋找具有給定名稱的文件。 577 00:26:59,640 --> 00:27:02,490 因此,讓我們做更多一些。 578 00:27:02,490 --> 00:27:03,660 讓我們進入下載。 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 觸摸DOG1。 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 觸摸CAT2。 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 觸摸cat_dog。 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 觸摸catcat。 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> 所以我想找到的所有 文件與狗的名稱。 589 00:27:23,810 --> 00:27:28,060 因此發現,與最長 一次,我從來不記得 590 00:27:28,060 --> 00:27:33,760 如何找到工作,直到我終於 讀的東西,說得那麼清楚。 591 00:27:33,760 --> 00:27:35,784 所以發現,自動遞歸。 592 00:27:35,784 --> 00:27:36,950 你並不需要通過一個-r。 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 所以找點。 595 00:27:39,110 --> 00:27:40,750 我們還沒有談到點呢。 596 00:27:40,750 --> 00:27:44,800 而點點總是 是指一個目錄了。 597 00:27:44,800 --> 00:27:46,960 點總是表示當前目錄。 598 00:27:46,960 --> 00:27:51,390 所以我可以RM在-r點 同樣的方式,我可以命令rm -rf *。 599 00:27:51,390 --> 00:27:53,140 最終他們 完成同樣的事情。 600 00:27:53,140 --> 00:27:56,040 RM -rf點是要去除 整個當前目錄。 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> 好了,我不想在那裡做。 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 但找到點。 605 00:28:04,320 --> 00:28:07,920 所以遞歸搜索當前 目錄,現在一切 606 00:28:07,920 --> 00:28:14,125 在此之後的一堆標誌,你 使用從返回排除的東西。 607 00:28:14,125 --> 00:28:17,250 所以找點返回的一切,它 可以找到從當前目錄。 608 00:28:17,250 --> 00:28:19,700 這些都是所有文件 遞歸搜索。 609 00:28:19,700 --> 00:28:21,250 我們將看到一些有第二個的。 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> 但如果你想知道我該怎麼辦 即,這樣的命令K,最起碼 612 00:28:27,140 --> 00:28:29,660 我在Mac終端將其清除。 613 00:28:29,660 --> 00:28:34,660 控制l通常清除 這對於任何類型的終端。 614 00:28:34,660 --> 00:28:36,480 您也可以鍵入清楚。 615 00:28:36,480 --> 00:28:38,410 如果你有機會 成一個奇怪的scenario-- 616 00:28:38,410 --> 00:28:42,790 它發生在我身上了幾個時間 - 在您提示的顏色 617 00:28:42,790 --> 00:28:46,590 都搞砸了,或者你 不能夠看到什麼 618 00:28:46,590 --> 00:28:51,232 當你正在打字輸入,因為 有時像背景顏色設置 619 00:28:51,232 --> 00:28:53,940 相同的前景色 現在你看不到的字體。 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 重置是什麼,只是重置 你到默認黑色背景, 622 00:28:59,830 --> 00:29:01,840 白前,或任何 你將它們設置為。 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> 所以,我們說到哪兒了? 625 00:29:04,790 --> 00:29:05,930 找點。 626 00:29:05,930 --> 00:29:09,360 所以,現在一切都過去,這 點限制的結果 627 00:29:09,360 --> 00:29:11,450 東西相匹配 給定的模式。 628 00:29:11,450 --> 00:29:16,110 所以在這裡我要搜索 一切與名貓。 629 00:29:16,110 --> 00:29:17,300 我什麼也沒得到。 630 00:29:17,300 --> 00:29:18,390 為什麼會這樣? 631 00:29:18,390 --> 00:29:21,230 好吧,我只是在尋找 東西正是名貓。 632 00:29:21,230 --> 00:29:25,150 如果我想搜索的東西 有一些圖案,並cat-- 633 00:29:25,150 --> 00:29:28,890 引號技術上是沒有必要的, 但我扔在那裡。 634 00:29:28,890 --> 00:29:32,720 所以,現在它找到catcat因為 這是唯一的事情, 635 00:29:32,720 --> 00:29:36,040 有一些武斷 其次是貓的圖案。 636 00:29:36,040 --> 00:29:41,950 我可以把貓*,現在 找到catcat,cat_dog,CAT2, 637 00:29:41,950 --> 00:29:45,245 因為那些都是事情的貓 在開始之後任何東西。 638 00:29:45,245 --> 00:29:46,120 你可以結合這一點。 639 00:29:46,120 --> 00:29:50,480 如果你想搜索所有的C文件 你有,你可能會做的* .c。 640 00:29:50,480 --> 00:29:51,960 我們在這裡blah.c。 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 所以這是一個發現的作品。 643 00:29:55,020 --> 00:29:55,770 您可以搜索。 644 00:29:55,770 --> 00:29:58,270 它有一大堆的標誌 為進一步的限制。 645 00:29:58,270 --> 00:30:00,960 和一個對他們來說,假設-d。 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 所以不推薦使用。 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 哦,那不是我想要的。 650 00:30:06,550 --> 00:30:07,730 不-d。 651 00:30:07,730 --> 00:30:08,860 D型。 652 00:30:08,860 --> 00:30:13,820 因此,發現點 - D型。 653 00:30:13,820 --> 00:30:17,760 還等什麼,僅僅是做了我搜索 在當前目錄下的所有文件 654 00:30:17,760 --> 00:30:21,680 與A-- d代表 directory--目錄類型。 655 00:30:21,680 --> 00:30:24,430 這將返回所有目錄 在當前目錄中。 656 00:30:24,430 --> 00:30:27,670 和F型的所有常規 文件,所有的非目錄。 657 00:30:27,670 --> 00:30:29,809 所以,這只是一個 例如其他的方法你 658 00:30:29,809 --> 00:30:32,350 可以限制搜索其它 比文件的只是名稱。 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> 它已經30分鐘。 661 00:30:35,570 --> 00:30:36,848 仍在繼續。 662 00:30:36,848 --> 00:30:38,132 >> 艾里遜:我會微風過。 663 00:30:38,132 --> 00:30:39,670 它會沒事的。 664 00:30:39,670 --> 00:30:41,460 >> 羅布·鮑登:所以一些其他的事情。 665 00:30:41,460 --> 00:30:45,700 現在的一聲,感嘆號。 666 00:30:45,700 --> 00:30:50,530 這樣一般是指: 好了,讓我們看一個例子。 667 00:30:50,530 --> 00:30:52,230 所以!樓什麼的怎麼辦? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 那麼它似乎有 反复找點型F。 670 00:30:57,810 --> 00:30:59,240 怎麼樣!克? 671 00:30:59,240 --> 00:31:00,760 這只是用grep -r貓*。 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 所以,一鼓作氣,您可以使用重複 最近完成的命令。 674 00:31:05,720 --> 00:31:13,280 所以,如果我輸入!GRE,它會重新運行 始於GRE大多數命令 675 00:31:13,280 --> 00:31:14,060 最近。 676 00:31:14,060 --> 00:31:17,090 >> 你可以看到這一切 歷史命令。 677 00:31:17,090 --> 00:31:17,880 所以歷史。 678 00:31:17,880 --> 00:31:19,630 這些都是 命令我今天跑。 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 和好了,這是不是真的 限於今天, 681 00:31:23,130 --> 00:31:25,180 但我只用這 家電今天的。 682 00:31:25,180 --> 00:31:28,730 這是你的全部 你的bash shell的歷史, 683 00:31:28,730 --> 00:31:30,433 除了它在某點切斷。 684 00:31:30,433 --> 00:31:33,474 聽眾:如果你這樣做,會發生什麼 歷史[聽不清]命令和錯誤 685 00:31:33,474 --> 00:31:35,430 在結果仍然打印the-- 686 00:31:35,430 --> 00:31:44,110 >> 羅布·鮑登:是的,如果有 在這些commands--的一個錯誤 687 00:31:44,110 --> 00:31:48,090 所以我們說,這是一個 未找到錯誤的命令。 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 仍然出現在歷史記錄。 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 行。 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 在什麼其他問題? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 所以這就是一聲巨響。 696 00:32:00,300 --> 00:32:04,230 >> 現在,真正有用的命令,伙計。 697 00:32:04,230 --> 00:32:07,750 所以,讓你的 手動對給定命令。 698 00:32:07,750 --> 00:32:11,640 所以我們說男人的ls,所以 這是我展示LS。 699 00:32:11,640 --> 00:32:13,400 它列出目錄內容。 700 00:32:13,400 --> 00:32:17,150 這是我看到有 都存在這些不同的標誌。 701 00:32:17,150 --> 00:32:21,340 所以我們看到ls -l命令的存在 如果我們閱讀。 ls -l命令 702 00:32:21,340 --> 00:32:26,150 給我的這個完整列表 與誰擁有的文件目錄, 703 00:32:26,150 --> 00:32:29,750 該文件的大小,在 的修改的時戳。 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 所以LS -a是另一個你可能會 實際使用多少有些頻繁。 706 00:32:34,980 --> 00:32:38,130 -al是我最常見的標誌,在過去的LS。 707 00:32:38,130 --> 00:32:42,520 >> 所以-a,看到有很多 不僅僅是LS多個文件。 708 00:32:42,520 --> 00:32:44,170 LS -a。 709 00:32:44,170 --> 00:32:46,170 什麼是在與所有這些文件? 710 00:32:46,170 --> 00:32:47,790 他們先從一個點。 711 00:32:47,790 --> 00:32:54,710 所以這是一個約定在Linux中的 即以點開始的文件是隱藏的。 712 00:32:54,710 --> 00:32:58,330 所以它只是意味著, 當我們剛剛直LS, 713 00:32:58,330 --> 00:33:04,170 或者,我們正在尋找使用這個目錄 取景器相當,或Windows 714 00:33:04,170 --> 00:33:07,250 資源管理器等同,我們 不希望看到這些點文件。 715 00:33:07,250 --> 00:33:09,680 他們只是污染對事物的看法。 716 00:33:09,680 --> 00:33:11,790 因此,他們被隱藏 除非您特別 717 00:33:11,790 --> 00:33:14,250 要求他們像-a。 718 00:33:14,250 --> 00:33:18,920 這樣我就可以用cd命令進入。本地,我看 這本身就是一個目錄 719 00:33:18,920 --> 00:33:22,220 一個共享目錄, 應用程序,等等等等。 720 00:33:22,220 --> 00:33:24,520 於是點,他們只是隱藏文件。 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> 好了,其他重要的。 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 我有一對夫婦,我可以跳過。 725 00:33:32,000 --> 00:33:38,160 讓我們只對真正的快速通話 文件重定向的東西。 726 00:33:38,160 --> 00:33:43,020 所以這是一個複雜的全系列 的東西,你可以用這些做什麼, 727 00:33:43,020 --> 00:33:47,204 只是看到他們,讓我們說,迴聲。 728 00:33:47,204 --> 00:33:47,870 另一個命令。 729 00:33:47,870 --> 00:33:48,920 非常愚蠢的命令。 730 00:33:48,920 --> 00:33:50,710 它所做的就是打印我告訴它。 731 00:33:50,710 --> 00:33:52,070 所以迴聲招呼。 732 00:33:52,070 --> 00:33:53,850 它只是回應打招呼的畫面。 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 你好世界。 735 00:33:56,390 --> 00:33:57,890 相呼應的hello world。 736 00:33:57,890 --> 00:34:02,650 >> 因此,一個命令或者一個 符號bash的理解 737 00:34:02,650 --> 00:34:07,620 比符號這更大,並 即,輸出到文件符號。 738 00:34:07,620 --> 00:34:10,940 所以,如果我輸出這 FOO,現在有一個文件 739 00:34:10,940 --> 00:34:15,100 名為foo,裡面 這是世界您好。 740 00:34:15,100 --> 00:34:18,489 所以請注意,當我回音 你好世界管到foo中, 741 00:34:18,489 --> 00:34:19,980 它沒有回音的hello world。 742 00:34:19,980 --> 00:34:22,630 相反,它被放入文件foo。 743 00:34:22,630 --> 00:34:25,340 而另一個命令只是 把它扔在你的貓。 744 00:34:25,340 --> 00:34:29,191 這是一個簡單的方法來一場徹底 列出的文件中的內容 745 00:34:29,191 --> 00:34:31,440 這樣我就不必開 文本編輯器來查看。 746 00:34:31,440 --> 00:34:34,159 的所以內容 foo的文件是的hello world。 747 00:34:34,159 --> 00:34:38,460 我可以貓blah.c, 內容是這樣。 748 00:34:38,460 --> 00:34:42,123 >> 同樣,這些命令是,不 希望你把它們都記住。 749 00:34:42,123 --> 00:34:43,860 這個想法是,你見過他們。 750 00:34:43,860 --> 00:34:45,735 也許你正在努力 什麼,你 751 00:34:45,735 --> 00:34:47,230 就像我討厭打開此文件。 752 00:34:47,230 --> 00:34:50,120 我希望我能看 在內容真正的快。 753 00:34:50,120 --> 00:34:52,320 你可以這樣做,那麼 回過頭來說,哦,我 754 00:34:52,320 --> 00:34:55,250 記得是這樣 存在,它的貓。 755 00:34:55,250 --> 00:35:00,630 >> 所以,是要的文件。 756 00:35:00,630 --> 00:35:06,639 現在有沒有什麼好的 例如從一個文件中讀取呢。 757 00:35:06,639 --> 00:35:08,930 是什麼東西把 從標準的東西? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 任何簡單的Linux命令? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 當我們得到它,在一對夫婦 週所有piece--好, 762 00:35:16,970 --> 00:35:20,470 這週你有一塊,你 開始從用戶接受輸入。 763 00:35:20,470 --> 00:35:23,696 所以通常你鍵入 該輸入的鍵盤。 764 00:35:23,696 --> 00:35:25,570 而不是打字說的 輸入的鍵盤, 765 00:35:25,570 --> 00:35:30,950 您可以改為管道從文件 所以,當你這樣做的馬里奧,./mario, 766 00:35:30,950 --> 00:35:35,200 管中,從任何給定的文件中,並 那將運行馬里奧程序。 767 00:35:35,200 --> 00:35:37,300 在沒有預料的輸入 鍵盤上,而不是它的 768 00:35:37,300 --> 00:35:39,650 只是要閱讀 線路從FOO文件。 769 00:35:39,650 --> 00:35:45,230 >> 所以,大於富將其放入 foo的文件,且小於富 770 00:35:45,230 --> 00:35:50,170 需要的東西,從foo的文件, 使用該輸入到這個程序。 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 而剛剛看到它,我們也可以呼應 FOO酒吧巴茲,然後而不是一個 773 00:36:00,630 --> 00:36:03,850 大於,讓我們做兩到foo中。 774 00:36:03,850 --> 00:36:05,610 這是什麼做的? 775 00:36:05,610 --> 00:36:07,180 它只是追加到文件中。 776 00:36:07,180 --> 00:36:15,360 因此,而不是發現,如果我不回應胡說成 富然後貓FOO,它只是胡說。 777 00:36:15,360 --> 00:36:18,285 所以,當你輸出到一個文件,它 完全覆蓋該文件。 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 如果你只是想追加, 雙[?平地機。 ?] 780 00:36:22,740 --> 00:36:24,080 >> 而在去年的管道。 781 00:36:24,080 --> 00:36:29,590 管獲取更加複雜,其中 它需要一個命令的輸出 782 00:36:29,590 --> 00:36:32,320 並將其饋送到下一個命令。 783 00:36:32,320 --> 00:36:36,140 因此,一些平常的事情,歷史。 784 00:36:36,140 --> 00:36:37,920 所以,唉,我不想看這個。 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 告訴我在我的歷史中的所有命令 在這裡我用grep-ED的東西。 787 00:36:44,485 --> 00:36:45,360 不,這是令人困惑的。 788 00:36:45,360 --> 00:36:50,360 告訴我在哪裡,我覺得所有的命令。 789 00:36:50,360 --> 00:36:52,360 所有的查找命令我曾經跑了。 790 00:36:52,360 --> 00:36:55,050 >> 所以歷史。 791 00:36:55,050 --> 00:36:59,017 現在,歷史輸出到 篩選此命令列表, 792 00:36:59,017 --> 00:37:00,850 但我不希望 將其輸出到屏幕。 793 00:37:00,850 --> 00:37:03,445 相反,我要管成grep的。 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 因此,讓我們用grep進行查找的所有實例。 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 所以現在,而不是採取的grep 的輸入,而不是of-- 798 00:37:17,000 --> 00:37:24,360 grep的是能夠處理的input--我們 使用grep在這裡稍微不同。 799 00:37:24,360 --> 00:37:29,550 因此,而不是打字名單 事情我們想搜索 800 00:37:29,550 --> 00:37:31,070 和所述的grep正在作為輸入。 801 00:37:31,070 --> 00:37:34,810 所以,如果我只是grep的發現,它 等待我輸入的東西。 802 00:37:34,810 --> 00:37:37,661 所以貓你好找到。 803 00:37:37,661 --> 00:37:38,160 您好。 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 查找。 806 00:37:40,930 --> 00:37:43,670 請注意,我每次鍵入找 它認識到,我輸入的查找。 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 因此,而不是此, 搜索文件的查找。 809 00:37:49,540 --> 00:37:53,930 >> 所以,歷史是現在要 輸出所有的命令的列表。 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 我們把該輸出, 我們正在餵養它到grep, 812 00:37:58,100 --> 00:38:00,180 所以它吐出 發現的所有實例。 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 我之所以說這會很混亂 是,如果我 - 它仍然撲朔迷離。 815 00:38:05,570 --> 00:38:07,030 如果我用grep grep的。 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 請注意,這是幾乎總是 顯示命令我 818 00:38:11,130 --> 00:38:15,280 跑,因為該命令 本身具有的grep它裡面。 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> 好了,就什麼問題嗎? 821 00:38:20,674 --> 00:38:22,340 我會在這一點上轉移過來。 822 00:38:22,340 --> 00:38:24,690 希望這是一個很好的 所有命令的概觀 823 00:38:24,690 --> 00:38:30,100 你不需要有 記住,但是這些補 824 00:38:30,100 --> 00:38:32,950 堅實的95%是我 這樣做在命令行中。 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 也請記住,在命令行 本身的bash是一種編程語言, 827 00:38:39,140 --> 00:38:43,070 所以,當你坐下來,你 可能需要做非常複雜的事情。 828 00:38:43,070 --> 00:38:47,522 因此它具有類似的東西 循環,並且如果,並且所有這些 829 00:38:47,522 --> 00:38:50,230 那你要習慣 與你的編程語言。 830 00:38:50,230 --> 00:38:53,660 但是,這是超越 本節的範圍。 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 好了,沒有什麼問題? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 艾里遜:沒有? 835 00:38:58,523 --> 00:38:59,450 GABRIEL:你會to-- 836 00:38:59,450 --> 00:39:01,158 艾里遜:我能行 對礦井,如果你想要的。 837 00:39:01,158 --> 00:39:02,626 我們可以看看會發生什麼。 838 00:39:02,626 --> 00:39:03,750 羅布·鮑登:關艾里遜。 839 00:39:03,750 --> 00:39:05,090 艾里遜:嗚。 840 00:39:05,090 --> 00:39:07,504 你是一個望塵莫及,羅布。 841 00:39:07,504 --> 00:39:08,920 難道你要我跟你轉? 842 00:39:08,920 --> 00:39:10,246 或者你有,OK。 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 我要去嘗試,並沒有 很是冗長那裡。 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 如果讓這種意志來看看 工作,我想它的方式。 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 也許? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 哈哈! 851 00:39:28,296 --> 00:39:28,796 是。 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> 所以,我只是要很快去 通過變量,循環,條件, 854 00:39:34,066 --> 00:39:35,440 和編譯器一點點。 855 00:39:35,440 --> 00:39:38,570 如果你有問題 任何時候,請阻止我。 856 00:39:38,570 --> 00:39:42,750 這些傢伙會提醒我重複 你的問題的情況下,我忘了, 857 00:39:42,750 --> 00:39:44,210 但應該不會太差。 858 00:39:44,210 --> 00:39:45,850 >> 所以變量,是的。 859 00:39:45,850 --> 00:39:48,060 我們有沒有一個你 片劃傷這裡。 860 00:39:48,060 --> 00:39:50,440 我敢肯定,你們中的大多數,如果 你有某種遊戲 861 00:39:50,440 --> 00:39:53,810 那你從頭開始創建,你有 保留的東西軌道一樣得分, 862 00:39:53,810 --> 00:39:55,870 或時間,或類似的東西。 863 00:39:55,870 --> 00:39:58,080 因此,那些明亮的橙色 我們看到有件 864 00:39:58,080 --> 00:40:02,630 都只是暫存形式 變量,你一定會 865 00:40:02,630 --> 00:40:04,640 可以使用變量 整個程序。 866 00:40:04,640 --> 00:40:07,350 如果你不是,我不是真的 知道自己在做什麼。 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> 但無論如何,大的事情, 定義變量。 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 用C每一個變量都有 有一個類型中聲明, 871 00:40:16,970 --> 00:40:22,090 所以我給你一個非常 一般一個在頂部。 872 00:40:22,090 --> 00:40:24,045 所以,你有你 類型,然後什麼 873 00:40:24,045 --> 00:40:25,420 你決定打電話給你的變量。 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 所以在這種情況下,類型 在變量列表。 876 00:40:29,680 --> 00:40:31,400 >> 我們有三個例子。 877 00:40:31,400 --> 00:40:34,439 夏亞有些檔次的, 一個A,這是什麼 878 00:40:34,439 --> 00:40:36,230 我敢肯定,你都想要 取得這一類。 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 您可以定義多個 在一行中的變量 881 00:40:40,670 --> 00:40:43,880 只要它們具有相同的類型, 這是我們的第二個例子中有 882 00:40:43,880 --> 00:40:46,409 在這裡你有三個 變量中,x,y和z。 883 00:40:46,409 --> 00:40:47,200 他們都是浮動。 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 然後你也可以,在這最後 例如與詮釋得分和數量 886 00:40:53,250 --> 00:40:56,510 隊,你可以 初始化它們就在那裡。 887 00:40:56,510 --> 00:41:01,270 >> 所以在中間例子,其中我們 只是有X,Y和Z的浮動, 888 00:41:01,270 --> 00:41:02,730 那些尚未初始化。 889 00:41:02,730 --> 00:41:04,140 他們沒有任何價值。 890 00:41:04,140 --> 00:41:05,600 或者他們有垃圾值。 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 如果您嘗試使用它們, 編譯器會罵你。 893 00:41:10,790 --> 00:41:14,727 你有兩種申報和 初始化變量。 894 00:41:14,727 --> 00:41:16,310 因此,在這個最後一個,我們正在做兩個。 895 00:41:16,310 --> 00:41:19,320 我們聲明變量 比分和球隊的數量, 896 00:41:19,320 --> 00:41:24,134 我們正在初始化他們,給 7和4它們的初始值 897 00:41:24,134 --> 00:41:24,675 分別。 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 涼爽。 900 00:41:27,190 --> 00:41:28,550 大家好? 901 00:41:28,550 --> 00:41:29,470 真棒。 902 00:41:29,470 --> 00:41:31,690 >> OK,所以一些約定。 903 00:41:31,690 --> 00:41:35,965 如果你們看過 通過樣式50,這些 904 00:41:35,965 --> 00:41:39,510 只是事情,我們想為 你要實現你的風格。 905 00:41:39,510 --> 00:41:41,230 因此,有意義的名稱。 906 00:41:41,230 --> 00:41:45,700 如果你開始打電話的事 剛的x,y和z,尤其 907 00:41:45,700 --> 00:41:47,902 當你進入更長 程序,你 908 00:41:47,902 --> 00:41:49,610 可能會 迷惑自己,是 909 00:41:49,610 --> 00:41:52,930 喜歡什麼是這個變量指。 910 00:41:52,930 --> 00:41:55,880 我不知道這意味著什麼。 911 00:41:55,880 --> 00:41:59,280 >> 所以,如果它意味著持有 分的高分,稱其為得分。 912 00:41:59,280 --> 00:42:05,720 如果它的目的是保存一些答案 或導致,給它一個這樣的名字。 913 00:42:05,720 --> 00:42:09,920 for循環,我們將 進入的下一個幻燈片, 914 00:42:09,920 --> 00:42:12,985 單個字母的變量都是精品。 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN:我,j和k分別 只是約定for循環 917 00:42:18,449 --> 00:42:22,050 每個人都希望他們 被稱為I,j和k。 918 00:42:22,050 --> 00:42:26,890 您可以撥打them--我看行 列或行的電話,有時 919 00:42:26,890 --> 00:42:29,450 對於兩個嵌套循環,並 這也是一種標準。 920 00:42:29,450 --> 00:42:31,450 但是,i和j被完全理解。 921 00:42:31,450 --> 00:42:33,670 >> ALLISON:是啊,我和 j您是完全的罰款。 922 00:42:33,670 --> 00:42:36,250 為了清楚起見,像 在你的一些P組, 923 00:42:36,250 --> 00:42:39,745 它可能是有意義有更多的 在那裡只是描述性事 924 00:42:39,745 --> 00:42:40,920 跟踪它。 925 00:42:40,920 --> 00:42:45,100 但我認為,I,J和K,我認為 絕大多數的我們全部使用。 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> 羅布·鮑登:有了這些 約定,所以風格是很重要的。 928 00:42:50,340 --> 00:42:53,520 這是四個軸中的一個 在這你分級, 929 00:42:53,520 --> 00:42:58,110 它是那麼容易只是去了 你P設定在年底確保 930 00:42:58,110 --> 00:42:59,770 有沒有文體的錯誤。 931 00:42:59,770 --> 00:43:01,742 所以一定要確保你是正確的tab鍵切換。 932 00:43:01,742 --> 00:43:03,200 確保你的變量命名。 933 00:43:03,200 --> 00:43:04,450 留下一些評論。 934 00:43:04,450 --> 00:43:06,677 這是很容易得到這些點。 935 00:43:06,677 --> 00:43:09,510 你不必去想 為了任何事情來得到這些點。 936 00:43:09,510 --> 00:43:11,093 你不必弄清楚什麼了。 937 00:43:11,093 --> 00:43:12,640 它只是使它看起來很漂亮。 938 00:43:12,640 --> 00:43:14,850 >> 艾里遜:其實我們 有風格的50,這 939 00:43:14,850 --> 00:43:17,920 會告訴你,你搞亂 了,如果你搞亂款式 940 00:43:17,920 --> 00:43:21,180 並會告訴你,正是你 需要修復,你需要如何解決它。 941 00:43:21,180 --> 00:43:23,900 這也是剛剛好提 這是當然的政策 942 00:43:23,900 --> 00:43:27,200 如果你在辦公室 小時,你的代碼是一個爛攤子, 943 00:43:27,200 --> 00:43:30,200 我們可以拒絕幫助 你,直到它看起來更好。 944 00:43:30,200 --> 00:43:34,310 於是開始了吧, 保持一貫的風格, 945 00:43:34,310 --> 00:43:37,100 你也只會讓 你的生活輕鬆許多,當 946 00:43:37,100 --> 00:43:38,730 你試圖去通過調試。 947 00:43:38,730 --> 00:43:41,510 如果你想弄清楚 在那裡你錯過了一個大括號 948 00:43:41,510 --> 00:43:44,890 他們是所有的地方,你 只是讓自己的生活更加艱難。 949 00:43:44,890 --> 00:43:47,217 所以,要與風格相一致。 950 00:43:47,217 --> 00:43:48,800 我保證它會讓你的生活更輕鬆。 951 00:43:48,800 --> 00:43:50,330 它會讓我們的生活更輕鬆。 952 00:43:50,330 --> 00:43:51,869 每個人都會更幸福。 953 00:43:51,869 --> 00:43:52,910 這就是你想要的。 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL:你的分數會更高。 956 00:43:55,650 --> 00:43:56,858 ALLISON:是的,你的成績。 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 如果你的TF就是喜歡你, 往往是有利的。 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 好吧,然後就 這裡的第二點。 961 00:44:05,010 --> 00:44:06,300 一致的初始化。 962 00:44:06,300 --> 00:44:09,605 所以,正如我們所看到,你可以聲明 和初始化的東西。 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 在同一行上的多個變量。 965 00:44:13,180 --> 00:44:17,930 我們希望您不是一回事 做的是聲明一些變量 966 00:44:17,930 --> 00:44:21,360 而不是初始化它們在同 您正在初始化其他線路。 967 00:44:21,360 --> 00:44:23,960 >> 所以,如果說做 沒有任何意義, 968 00:44:23,960 --> 00:44:29,050 我們這裡的例子 我們正在申報整數 969 00:44:29,050 --> 00:44:31,180 在宿舍的變量 助攻和便士, 970 00:44:31,180 --> 00:44:34,214 但宿舍和便士 有沒有初始值。 971 00:44:34,214 --> 00:44:36,630 我們沒有初始化他們, 但就在中間有 972 00:44:36,630 --> 00:44:38,600 我們已經初始化助攻為0。 973 00:44:38,600 --> 00:44:41,650 所以,無論是做宿舍,硬幣,硬幣。 974 00:44:41,650 --> 00:44:43,170 或者做宿舍等於0。 975 00:44:43,170 --> 00:44:43,930 一角硬幣等於0。 976 00:44:43,930 --> 00:44:46,810 便士等於0,或任何 這些初始值。 977 00:44:46,810 --> 00:44:49,800 >> 大的事情有型有款,是一致的。 978 00:44:49,800 --> 00:44:51,050 如果有疑問,是一致的。 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 但是,按照我們的風格指南了。 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 涼爽。 983 00:44:55,317 --> 00:44:56,150 每個人都很好嗎? 984 00:44:56,150 --> 00:44:57,566 >> 聽眾:哪裡的風格指南? 985 00:44:57,566 --> 00:45:00,800 艾里遜:本風格指南 是on--有什麼網站? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL:我認為這是manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 艾里遜:風格? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL:風格。 990 00:45:06,390 --> 00:45:06,920 是的。 991 00:45:06,920 --> 00:45:07,520 >> 艾里遜:是的。 992 00:45:07,520 --> 00:45:10,150 那麼問題究竟在哪裡風格50。 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style。 994 00:45:12,250 --> 00:45:13,639 是嗎? 995 00:45:13,639 --> 00:45:16,880 >> 聽眾:如果我們定義 變量,它是OK 996 00:45:16,880 --> 00:45:28,145 如果我們把像[聽不清]像 INT得分,然後INT目標。 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 所以,你會說,現在我們已經 一定要確定他們在一起嗎? 999 00:45:35,100 --> 00:45:37,640 >> 艾里遜:那麼質疑,應 你有多餘的代碼 1000 00:45:37,640 --> 00:45:40,940 當你定義 變量如int得分和 1001 00:45:40,940 --> 00:45:43,239 在下一行INT遊戲? 1002 00:45:43,239 --> 00:45:46,030 羅布·鮑登:有一定 情況下,冗餘的代碼是壞的。 1003 00:45:46,030 --> 00:45:47,738 我不會考慮 該冗餘代碼。 1004 00:45:47,738 --> 00:45:50,970 我幾乎從來沒有申報多 變量在同一行過。 1005 00:45:50,970 --> 00:45:53,736 如果有什麼,那是因為 平時我留下一些評論 1006 00:45:53,736 --> 00:45:55,235 解釋變量是什麼。 1007 00:45:55,235 --> 00:45:57,582 所以我會說INT得分斜線斜線。 1008 00:45:57,582 --> 00:45:59,350 跟踪什麼的。 1009 00:45:59,350 --> 00:46:00,710 在總斜線斜線。 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 因此,它是那樣的多格羅瑟 把它們都在同一行上。 1012 00:46:06,455 --> 00:46:08,080 我從來沒有把它們放在同一行。 1013 00:46:08,080 --> 00:46:10,580 >> 艾里遜:我覺得這是 個人偏好在這一點上。 1014 00:46:10,580 --> 00:46:14,900 >> 聽眾:這是否去 for循環之類的東西嗎? 1015 00:46:14,900 --> 00:46:15,900 羅布·鮑登:像裡面? 1016 00:46:15,900 --> 00:46:18,282 如int i等於0逗號 長度等於什麼? 1017 00:46:18,282 --> 00:46:19,490 那你沒有選擇。 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 用for循環的初始化 part--所以你可能只看到 1020 00:46:25,910 --> 00:46:31,520 INT i等於0分號我少 比任何分號我加再加。 1021 00:46:31,520 --> 00:46:33,820 這個int i等於0, 技術上你也可以 1022 00:46:33,820 --> 00:46:35,770 做我們之前看到的 用逗號語法。 1023 00:46:35,770 --> 00:46:39,790 INT i等於0逗號Ĵ 等於3逗號k等於5。 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 你沒有選擇拆分 這為多行, 1026 00:46:44,320 --> 00:46:46,530 這就是標準。 1027 00:46:46,530 --> 00:46:47,780 看到它有罰款。 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 艾里遜:真棒。 1030 00:46:49,890 --> 00:46:52,120 好吧,方便SEGUE成環。 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 所以呀,我們這裡有一些例子 迴路,你們在看到划痕。 1033 00:46:58,980 --> 00:47:01,550 當然,所有的這些 只需在C.重建 1034 00:47:01,550 --> 00:47:04,610 他們基本上是讓你 重複代碼的某些部分 1035 00:47:04,610 --> 00:47:06,740 直到一定的條件 得到滿足,我們將 1036 00:47:06,740 --> 00:47:09,198 進入正確的說話後, 關於循環使用條件語句。 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> 因此,我們有三種主要類型。 1039 00:47:12,570 --> 00:47:17,500 因為,雖然,做一段時間,這 我們將所有的經歷現在。 1040 00:47:17,500 --> 00:47:18,860 所以,第一個是for循環。 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 所以對於一些條件, 執行這個代碼塊。 1043 00:47:25,034 --> 00:47:27,200 我們有這個很酷的小 關係圖在此間舉行的底部。 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 但基本上,你在 你的,那行頭, 1046 00:47:32,310 --> 00:47:34,240 你要 初始化變量。 1047 00:47:34,240 --> 00:47:38,260 >> 因此,當我們談到,我是 等於0或i等於10。 1048 00:47:38,260 --> 00:47:40,010 無論你需要的 變量是它的 1049 00:47:40,010 --> 00:47:43,970 要被初始化的存在, 聲明和初始化為某個值。 1050 00:47:43,970 --> 00:47:46,760 所以後來我們有一些 條件是怎麼回事 1051 00:47:46,760 --> 00:47:48,900 要檢查我們的 可變反對的東西。 1052 00:47:48,900 --> 00:47:55,220 這樣的情況下的典型的情況下 也許你想這部分代碼 1053 00:47:55,220 --> 00:47:56,620 執行五次。 1054 00:47:56,620 --> 00:48:02,380 因此,我們不得不INT i等於0,而且我們 希望它是,當i小於5。 1055 00:48:02,380 --> 00:48:04,940 使條件是剛剛 要檢查每一次。 1056 00:48:04,940 --> 00:48:07,120 如果條件 計算結果為true,它的 1057 00:48:07,120 --> 00:48:11,162 要運行的代碼,而這正是 這是什麼小圖是顯示。 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> 所以它執行它。 1060 00:48:13,639 --> 00:48:15,430 它更新一個變量, 這就是我們看到的 1061 00:48:15,430 --> 00:48:21,020 在我們對的最後部分 環路初始化那裡。 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 因此,只要繼續這樣做 直到該條件沒有被滿足, 1064 00:48:26,030 --> 00:48:28,010 然後將退出 循環並繼續 1065 00:48:28,010 --> 00:48:29,960 移動與程序的其餘部分。 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 每個人都很好嗎? 1068 00:48:33,620 --> 00:48:34,440 涼爽。 1069 00:48:34,440 --> 00:48:37,780 >> 因此,這裡是一個例子,非常相似 到東西,我剛才講的。 1070 00:48:37,780 --> 00:48:42,030 所以,我們只想打印 這是CS50 10倍。 1071 00:48:42,030 --> 00:48:44,540 所以,你在這裡看到我們有 我們的,然後我們 1072 00:48:44,540 --> 00:48:47,450 初始化變量 i到等於0。 1073 00:48:47,450 --> 00:48:50,610 我們的條件檢查 它的不到10%。 1074 00:48:50,610 --> 00:48:55,210 因此,計算結果為true時首先我們 開始,然後更新我們的變量 1075 00:48:55,210 --> 00:48:58,985 每次它實際上執行的時間 並打印出來,這是CS50。 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 經過10次將終止。 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 涼爽。 1080 00:49:04,070 --> 00:49:07,130 >> 所以,當環路旁邊。 1081 00:49:07,130 --> 00:49:12,400 正如你看到這裡,我們只是有 有的雖然這condition--問題? 1082 00:49:12,400 --> 00:49:15,238 >> 觀眾:我怎麼能跳 其實不只是一個數字, 1083 00:49:15,238 --> 00:49:19,030 但兩個號碼[聽不清] 我加再加加? 1084 00:49:19,030 --> 00:49:23,390 >> 艾里遜:所以,問題是你怎麼能 由一個以上的更新變量 1085 00:49:23,390 --> 00:49:24,070 的時間。 1086 00:49:24,070 --> 00:49:26,860 所以我加Plus會 更新一個各一次。 1087 00:49:26,860 --> 00:49:32,310 如果您希望通過更新它 2,你可以做我加等於2。 1088 00:49:32,310 --> 00:49:34,526 >> 羅布·鮑登:你見過 加上演講等於沒? 1089 00:49:34,526 --> 00:49:35,442 >> 聽眾:[聽不清]。 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> 艾里遜:這是有效的 同樣的事情,我等於我加2。 1092 00:49:42,110 --> 00:49:46,130 因此,它打算把它和 通過每次2更新它。 1093 00:49:46,130 --> 00:49:49,432 加等於只是一些 我們所說的語法糖。 1094 00:49:49,432 --> 00:49:52,390 羅布·鮑登:是啊,那些存在 幾乎所有的算術運算符。 1095 00:49:52,390 --> 00:49:55,830 所以,我多次等於 將增加一倍的數量。 1096 00:49:55,830 --> 00:50:02,590 Ĵ除法等於3是相同的 作為j為j通過3分。 1097 00:50:02,590 --> 00:50:07,399 >> 艾里遜:或減等於2將 通過每次2遞減島 1098 00:50:07,399 --> 00:50:08,565 羅布·鮑登:即使MOD平等。 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 你沒見過位運算符, 但插入符等於和等於符號, 1101 00:50:13,270 --> 00:50:14,560 所有這些的存在。 1102 00:50:14,560 --> 00:50:19,480 >> 艾里遜:所以很多時候,尤其是 你的第一對夫婦的P組, 1103 00:50:19,480 --> 00:50:22,527 你將很可能由遞增 一個,所以我加再加,J加再加 1104 00:50:22,527 --> 00:50:24,610 是你要的所有東西 以典型地使用。 1105 00:50:24,610 --> 00:50:28,240 但該更新條件是 完全的控制範圍之內。 1106 00:50:28,240 --> 00:50:32,310 您可以通過任何增量更新 或以任何方式你決定。 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 也許你甚至希望它是 隨機數的時候。 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 但是,是的,有很多 事情可以做的。 1111 00:50:39,580 --> 00:50:41,280 你不會受限於我加再加。 1112 00:50:41,280 --> 00:50:44,400 >> 羅布·鮑登:只要你 知道它的存在,它也 1113 00:50:44,400 --> 00:50:46,960 存在的另一種形式,再加上加上我。 1114 00:50:46,960 --> 00:50:51,410 因此,如果你曾經在網上搜索 而碰巧看到再加上加我, 1115 00:50:51,410 --> 00:50:52,870 幾乎是同一個意思。 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 艾里遜:酷。 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 好不好? 1120 00:50:56,740 --> 00:50:57,240 真棒。 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 因此,儘管循環。 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 非常相似。 1125 00:51:02,570 --> 00:51:03,737 你有一些條件。 1126 00:51:03,737 --> 00:51:05,820 最主要的是要注意 這裡,代替具有 1127 00:51:05,820 --> 00:51:08,540 三個不同的部分 成立,我們有一個。 1128 00:51:08,540 --> 00:51:11,090 我們只是有一些條件 這就是被選中。 1129 00:51:11,090 --> 00:51:14,920 並以同樣的方式,只要 該條件的計算結果為true, 1130 00:51:14,920 --> 00:51:16,840 你的代碼將運行。 1131 00:51:16,840 --> 00:51:18,870 如果它是假的,它 將終止,招 1132 00:51:18,870 --> 00:51:21,930 到你的程序的下一個部分。 1133 00:51:21,930 --> 00:51:25,780 因此,這是種like--什麼 檢查的一個很好的例子 1134 00:51:25,780 --> 00:51:27,215 對於一些正常狀態? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL:儘管這是事實。 1137 00:51:30,235 --> 00:51:32,110 艾里遜:你可以這樣做,而真實的。 1138 00:51:32,110 --> 00:51:33,510 井,1等於1。 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> 羅布·鮑登:你可以做while-- 使用for循環剛相反, 1141 00:51:37,642 --> 00:51:39,600 你總是可以編寫一個 for循環在while循環, 1142 00:51:39,600 --> 00:51:42,600 所以我大於0或 雖然我不到10。 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> 艾里遜:真棒。 1145 00:51:46,010 --> 00:51:50,640 然後我們做的while循環,這 非常適合用戶的驗證,其中 1146 00:51:50,640 --> 00:51:55,370 你想獲得的東西 你的用戶,看它是否有效, 1147 00:51:55,370 --> 00:51:57,060 然後從那裡繼續。 1148 00:51:57,060 --> 00:52:04,000 所以的事情知道的一個是用 這樣做,而在於它要執行, 1149 00:52:04,000 --> 00:52:08,000 然後它會重新執行 如果滿足這一條件。 1150 00:52:08,000 --> 00:52:11,240 >> 所以,可能是最好的方式做到這一點 只是看到一個例子來說明。 1151 00:52:11,240 --> 00:52:14,620 因此,正如我剛才提到的,用戶 驗證是真的useful-- 1152 00:52:14,620 --> 00:52:17,520 或者做消遣是真的 實用與用戶的驗證。 1153 00:52:17,520 --> 00:52:19,730 因此,這只是走 重新提示一些用戶 1154 00:52:19,730 --> 00:52:23,640 直到他們進入一個正數, 這可能是你的P組有用 1155 00:52:23,640 --> 00:52:24,190 本星期。 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 因此在這種情況下,當我們 首先運行該程序, 1158 00:52:29,480 --> 00:52:32,260 它要打印 輸入一個正數。 1159 00:52:32,260 --> 00:52:34,810 它會得到一些 來自用戶的輸入, 1160 00:52:34,810 --> 00:52:38,320 然後它會檢查 即對輸入的條件 1161 00:52:38,320 --> 00:52:39,500 你已經為它設置的。 1162 00:52:39,500 --> 00:52:41,030 >> 所以在這種情況下,它會檢查。 1163 00:52:41,030 --> 00:52:44,190 它會說,OK, 是我們的輸入負數, 1164 00:52:44,190 --> 00:52:47,175 或者是0或負, 這將是無效的。 1165 00:52:47,175 --> 00:52:48,300 這樣的話它會重新提示。 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 問題? 1168 00:52:50,780 --> 00:52:54,720 >> 聽眾:這是相同的,那麼作為一個 while循環,如果你只是複製代碼 1169 00:52:54,720 --> 00:52:56,680 並把它[聽不清] while循環? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> 艾里遜:那麼問題是會 這是相同的只是一會兒 1172 00:53:05,160 --> 00:53:08,570 循環,如果我們只 複製while循環以上。 1173 00:53:08,570 --> 00:53:12,440 所以在這種情況下,你的while循環 要首先檢查條件。 1174 00:53:12,440 --> 00:53:15,300 所以在這種情況下,如果我們試圖 寫的只是一個while循環, 1175 00:53:15,300 --> 00:53:18,010 它會說而 輸入小於1。 1176 00:53:18,010 --> 00:53:20,801 但是,我們並沒有一個輸入它。 1177 00:53:20,801 --> 00:53:24,238 >> 聽眾:如果[聽不清] while循環包括這段代碼, 1178 00:53:24,238 --> 00:53:28,166 但你應付代​​碼 上面的while循環也。 1179 00:53:28,166 --> 00:53:31,052 你只要有這個代碼 [聽不清] while循環。 1180 00:53:31,052 --> 00:53:32,760 ALLISON:這將是 同樣的事情,是的。 1181 00:53:32,760 --> 00:53:37,110 所以,你可以只寫 - 而不是有一個do--肯定的。 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL:但是,這更優雅。 1184 00:53:39,350 --> 00:53:41,020 ALLISON:是啊,那是更優雅。 1185 00:53:41,020 --> 00:53:44,560 你可以進入設計和諸如此類的東西, 但是,是的,你完全可以做到這一點。 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 還有沒有其他問題? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK,爽。 1190 00:53:50,250 --> 00:53:55,540 >> 因此,我們談了很多關於條件 所有這些循環,我們有, 1191 00:53:55,540 --> 00:53:58,615 所以我們實際上進入 條件布爾表達式。 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 同樣,你在C中使用這些, 所以只是一種過渡 1194 00:54:03,440 --> 00:54:06,050 從以上圖形界面 實際的編碼。 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> 酷,這麼大一個,如果。 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 基本上只允許我們引入 一些邏輯到我們的程序和檢查 1199 00:54:17,070 --> 00:54:17,790 SYS條件。 1200 00:54:17,790 --> 00:54:22,150 所以在這種情況下,確定, 為n大於0? 1201 00:54:22,150 --> 00:54:24,070 的確是這樣,這樣你就可以執行了。 1202 00:54:24,070 --> 00:54:28,060 這只是一些檢查 你已經條件 1203 00:54:28,060 --> 00:54:33,565 設置,我認為我們都 舒適的檢查環境。 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 涼爽。 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 所以,如果別人是你的另外一個, 你可以說好,如果這是真的, 1208 00:54:44,530 --> 00:54:46,150 這樣做的第一件事。 1209 00:54:46,150 --> 00:54:48,720 否則我要你 默認情況下,做別的事情。 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 像這種情況,你要么選擇一個 正數或負數。 1212 00:54:55,060 --> 00:54:56,500 你只有兩個選擇。 1213 00:54:56,500 --> 00:54:59,550 你需要它來執行,無論 了解你的用戶輸入。 1214 00:54:59,550 --> 00:55:02,920 所以,你可以說好, 是它大於0? 1215 00:55:02,920 --> 00:55:03,480 涼爽。 1216 00:55:03,480 --> 00:55:04,480 打印的正數。 1217 00:55:04,480 --> 00:55:06,153 如果不是的話,打印負。 1218 00:55:06,153 --> 00:55:06,960 大家好? 1219 00:55:06,960 --> 00:55:14,920 >> 再有一點認識是 如果滿足該條件的話, 1220 00:55:14,920 --> 00:55:16,650 的人會永遠也執行。 1221 00:55:16,650 --> 00:55:19,210 只有將其中的一個 同時執行。 1222 00:55:19,210 --> 00:55:20,410 所以這是一個權衡。 1223 00:55:20,410 --> 00:55:21,720 你沒有得到兼得。 1224 00:55:21,720 --> 00:55:23,566 你要么具備的首要條件。 1225 00:55:23,566 --> 00:55:25,440 你要么有,如果 還是一樣,不能同時使用。 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 然後可以把事情 更加複雜, 1228 00:55:28,890 --> 00:55:31,060 因為如果你能做到, 否則,然後其他人。 1229 00:55:31,060 --> 00:55:32,810 所以在這種情況下,我們 有三個條件。 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 再次,只有其中的一個是 最終將會被執行。 1232 00:55:38,370 --> 00:55:41,030 所以,你可能想知道 好吧,如果你有什麼 1233 00:55:41,030 --> 00:55:45,510 有什麼事情, 能滿足這兩個。 1234 00:55:45,510 --> 00:55:49,520 也許無論你輸入 符合這兩個條件 1235 00:55:49,520 --> 00:55:51,811 因為如果和其他人的話。 1236 00:55:51,811 --> 00:55:53,060 唯一的事情,那將運行 1237 00:55:53,060 --> 00:55:56,240 >> 艾里遜:一旦它發現的東西 它滿足該條件 1238 00:55:56,240 --> 00:55:59,790 計算結果為true,這就是 它會跑,沒有別的。 1239 00:55:59,790 --> 00:56:04,440 所以,如果你有這號 關於第1 0和5之間, 1240 00:56:04,440 --> 00:56:10,530 或者是介於3這個數 和5的其他部分如, 1241 00:56:10,530 --> 00:56:15,550 您輸入的number-- 我說0和5還有 - 4。 1242 00:56:15,550 --> 00:56:18,110 這將創下第一個。 1243 00:56:18,110 --> 00:56:20,960 它會說OK,這 數為0和5之間。 1244 00:56:20,960 --> 00:56:22,480 執行和離開。 1245 00:56:22,480 --> 00:56:25,340 它永遠不會打了第二個選項。 1246 00:56:25,340 --> 00:56:26,394 很酷吧? 1247 00:56:26,394 --> 00:56:27,250 真棒。 1248 00:56:27,250 --> 00:56:31,300 >> OK,我們也有switch語句,如果 你想獲得更為緩慢 - 還是遺憾, 1249 00:56:31,300 --> 00:56:31,965 開關旁邊。 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 我自己走在前面這裡。 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 同樣,如果多塊 正如我剛才所說的地方 1254 00:56:39,210 --> 00:56:45,600 只要你找到一個條件是 這是遇到了和其他人的話,如果其他人, 1255 00:56:45,600 --> 00:56:46,630 它的葉子。 1256 00:56:46,630 --> 00:56:49,560 如果您需要檢查 多的東西,你 1257 00:56:49,560 --> 00:56:53,000 會想用這個,因為 它會檢查這裡的每一次。 1258 00:56:53,000 --> 00:56:58,060 因此,這將通過,如果運行 它是大於或等於90, 1259 00:56:58,060 --> 00:56:59,160 它會打印。 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 它將貫穿和 檢查這些每一個人。 1262 00:57:03,600 --> 00:57:06,444 >> 聽眾:所以這將是 比[聽不清]更多的越野車。 1263 00:57:06,444 --> 00:57:07,735 這會不會像[聽不清]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> 艾里遜:問題是這是否 越野車還是該做你想做的。 1266 00:57:15,740 --> 00:57:19,830 這真的取決於什麼 你想從你的程序。 1267 00:57:19,830 --> 00:57:22,291 >> 聽眾:我的意思是,如果你把90等。 1268 00:57:22,291 --> 00:57:23,290 艾里遜:如果你把90-- 1269 00:57:23,290 --> 00:57:24,206 聽眾:[聽不清]。 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL:你會得到兩件事情。 1272 00:57:27,250 --> 00:57:28,916 艾里遜:你會得到兩件事情。 1273 00:57:28,916 --> 00:57:29,420 是的,2。 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> 羅布·鮑登:兩個? 1276 00:57:33,920 --> 00:57:34,580 >> 艾里遜:第 1277 00:57:34,580 --> 00:57:35,288 >> 羅布·鮑登:四。 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 如果你把90,它會說你 得了A,你有一個B,你有一個C, 1280 00:57:40,070 --> 00:57:40,545 你有D. 1281 00:57:40,545 --> 00:57:41,461 >> 聽眾:[聽不清]。 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 艾里遜:對。 1284 00:57:42,820 --> 00:57:44,778 所以,我要看你 想從你的程序。 1285 00:57:44,778 --> 00:57:47,050 有時你需要 檢查多東西。 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 你會得到更深入到什麼 良好的設計是為你往前走。 1288 00:57:55,270 --> 00:57:57,090 重要的是要 知道的是,這 1289 00:57:57,090 --> 00:58:01,090 這裡將檢查所有四個條件。 1290 00:58:01,090 --> 00:58:05,860 然而,如果這是一個的if else的if else 否則的話,它會打的第一種情況下, 1291 00:58:05,860 --> 00:58:07,950 它會打印你有一個A和完成。 1292 00:58:07,950 --> 00:58:10,250 >> 羅布·鮑登:即使我們 決定改變這是否 1293 00:58:10,250 --> 00:58:13,880 和大於或等於90, 如果和大於或等於80, 1294 00:58:13,880 --> 00:58:19,710 如果和小於或等於89, 如果n大於或等於70,則 1295 00:58:19,710 --> 00:58:23,830 並且n小於或等於 79,所以,這將是正確的。 1296 00:58:23,830 --> 00:58:27,190 這將做我們想要的,但 它仍然會檢查每一個它。 1297 00:58:27,190 --> 00:58:34,050 >> 因此,而在第一種情況,如果我們 進入90只,如果還有其他的話,如果, 1298 00:58:34,050 --> 00:58:37,300 我們輸入90,然後 它要糾正。 1299 00:58:37,300 --> 00:58:39,615 它會檢查第一 1,打印你得到一個A, 1300 00:58:39,615 --> 00:58:42,590 跳過一切,因為它 已經找到一個工作。 1301 00:58:42,590 --> 00:58:46,360 所有病例均是互斥的 否則的話,如果別人的話的基礎上。 1302 00:58:46,360 --> 00:58:48,630 所以它會執行 首先,如果,那麼它的完成。 1303 00:58:48,630 --> 00:58:49,790 它會走到最後。 1304 00:58:49,790 --> 00:58:52,400 >> 而如果我們改變 這是什麼我 1305 00:58:52,400 --> 00:58:54,204 說小於或等於89。 1306 00:58:54,204 --> 00:58:55,620 這將檢查的第一個。 1307 00:58:55,620 --> 00:58:56,560 它會打印。 1308 00:58:56,560 --> 00:58:58,010 它會檢查第二個。 1309 00:58:58,010 --> 00:58:59,010 它不會打印。 1310 00:58:59,010 --> 00:58:59,910 檢查第三個。 1311 00:58:59,910 --> 00:59:00,620 無法進行打印。 1312 00:59:00,620 --> 00:59:01,495 檢查第四個。 1313 00:59:01,495 --> 00:59:02,420 現在去打印。 1314 00:59:02,420 --> 00:59:05,380 所以在這種情況下,否則,如果 版本,因為這些情況 1315 00:59:05,380 --> 00:59:09,120 是相互排斥的,這是 更好地利用別人的話,如果還有的話, 1316 00:59:09,120 --> 00:59:12,970 因為那將不得不 少的條件檢查 1317 00:59:12,970 --> 00:59:14,750 比這個版本。 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 艾里遜:真棒。 1320 00:59:18,400 --> 00:59:20,580 所以另一件事,我們可以 做的是switch語句。 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 基本上是一個switch語句 需要一些變量, 1323 00:59:25,270 --> 00:59:28,780 在這種情況下,它是n,並且 決定執行哪一個情況。 1324 00:59:28,780 --> 00:59:33,106 所以,這也是1在您的案件 應該是種相互排斥的。 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 所以在這種情況下,如果 我們得到一個,它的 1327 00:59:37,940 --> 00:59:42,270 要匹配什麼的 n個變量 - 無論價值 1328 00:59:42,270 --> 00:59:48,700 是其中的一個箱子,所以1,2,或 3,並打印出相應的行。 1329 00:59:48,700 --> 00:59:51,870 >> 然後,如果你在這裡看到, 我們也有一個默認的, 1330 00:59:51,870 --> 00:59:54,670 你可以對所認為的你的人。 1331 00:59:54,670 --> 00:59:58,510 如果你選擇的任何其他號碼,以便 除1,2,和3在這種情況下 1332 00:59:58,510 --> 00:59:59,885 它只是要打印無效。 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 決定何時使用IFS與 如果偷別人對交換機是怎麼回事 1335 01:00:08,390 --> 01:00:12,590 要的東西,你們會 看到你開始編寫設計智慧 1336 01:00:12,590 --> 01:00:15,270 更複雜的方案,並且 有沒有硬性的規定 1337 01:00:15,270 --> 01:00:16,330 的時候使用它們。 1338 01:00:16,330 --> 01:00:17,890 這真的取決於你的環境。 1339 01:00:17,890 --> 01:00:18,590 >> 羅布·鮑登:而就 把它扔在那裡 1340 01:00:18,590 --> 01:00:20,131 因為它是更舒適的部分。 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 開關時,往往會 be--所以你限制 1343 01:00:25,053 --> 01:00:27,430 在方式的數量,你 可以使用它們,因為如果, 1344 01:00:27,430 --> 01:00:30,100 條件可以很 你想要任何東西。 1345 01:00:30,100 --> 01:00:33,410 帶開關的情況下, 必須是數字, 1346 01:00:33,410 --> 01:00:37,770 或技術上也可以是字符,但 字符,正如我們將看到的,都只是數字。 1347 01:00:37,770 --> 01:00:44,250 因此,他們必須是數字,但開關 真的,如果不是更有效 1348 01:00:44,250 --> 01:00:50,060 否則的話,如果還有,因為即使 以這個例子before--好, 1349 01:00:50,060 --> 01:00:51,486 檔次例子似乎不錯。 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> 好吧,讓我們在這裡說,我們不是做 這是一個用if else的if else,如果場景。 1352 01:00:57,080 --> 01:01:00,930 因此,如果n等於等於1,則 打印你選擇了一個低的數字。 1353 01:01:00,930 --> 01:01:04,490 如果別人當n等於等於2, 你選擇了一個中等數目。 1354 01:01:04,490 --> 01:01:06,550 否則,如果等於等於3,高。 1355 01:01:06,550 --> 01:01:08,060 否則無效。 1356 01:01:08,060 --> 01:01:09,820 >> 所以我們可以說,這是我們的場景。 1357 01:01:09,820 --> 01:01:14,060 所以我們可以說,我們進入 4,因此我們預計無效。 1358 01:01:14,060 --> 01:01:17,410 順便說,如果其他的if else 如果方法是行不通的 1359 01:01:17,410 --> 01:01:18,740 檢查第一個條件。 1360 01:01:18,740 --> 01:01:19,776 這不是滿意。 1361 01:01:19,776 --> 01:01:21,150 所以,我們檢查了第二個條件。 1362 01:01:21,150 --> 01:01:21,940 這不是滿意。 1363 01:01:21,940 --> 01:01:23,023 檢查第三個條件。 1364 01:01:23,023 --> 01:01:23,640 不滿意。 1365 01:01:23,640 --> 01:01:26,650 所以,我們去別的並打印無效。 1366 01:01:26,650 --> 01:01:30,169 >> 路開關廠 是它編譯成 1367 01:01:30,169 --> 01:01:31,960 到了我們要去 調用跳轉表。 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 主要的想法是 當你進入4的, 1370 01:01:37,120 --> 01:01:39,090 它可以立即去默認。 1371 01:01:39,090 --> 01:01:41,460 它並不需要檢查時的情況下我嗎? 1372 01:01:41,460 --> 01:01:42,350 沒了,這不是它。 1373 01:01:42,350 --> 01:01:42,850 案例2? 1374 01:01:42,850 --> 01:01:43,240 沒了。 1375 01:01:43,240 --> 01:01:43,770 案例3? 1376 01:01:43,770 --> 01:01:44,270 沒了。 1377 01:01:44,270 --> 01:01:45,090 默認值。 1378 01:01:45,090 --> 01:01:47,610 OK,這一定是哪裡 想要的,然後執行這一點。 1379 01:01:47,610 --> 01:01:49,590 不,它會立即跳轉到默認值。 1380 01:01:49,590 --> 01:01:51,900 或者我輸入2,它是 馬上要去到2 1381 01:01:51,900 --> 01:01:54,060 而不需要去通過案例1。 1382 01:01:54,060 --> 01:01:57,820 >> 因此,在這種方式 切實如今這 1383 01:01:57,820 --> 01:02:00,250 沒有那麼多的效率增益。 1384 01:02:00,250 --> 01:02:02,880 一般的電腦都還 快,這不是很大。 1385 01:02:02,880 --> 01:02:07,270 但它是這種情況即 開關速度更快。 1386 01:02:07,270 --> 01:02:10,380 如果你真的想 優化,使用一個開關。 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> 艾里遜:酷。 1389 01:02:12,710 --> 01:02:15,270 然後我們有三元運算符。 1390 01:02:15,270 --> 01:02:19,470 所以我知道我前面提到的 單詞語法糖。 1391 01:02:19,470 --> 01:02:24,160 所以,它只是事情讓 你的代碼更簡潔。 1392 01:02:24,160 --> 01:02:25,590 因此,這是其中的案例之一。 1393 01:02:25,590 --> 01:02:31,430 >> 因此,三元運算符是問號 結腸我們行字符串中看到 1394 01:02:31,430 --> 01:02:35,810 上的equalsñ大於100 問號高冒號低。 1395 01:02:35,810 --> 01:02:41,800 所以基本上這是如何工作是很 在n大於100是一個條件。 1396 01:02:41,800 --> 01:02:43,674 所以我認為這是有意義的。 1397 01:02:43,674 --> 01:02:44,840 這就像問一個問題。 1398 01:02:44,840 --> 01:02:47,320 它說的哦,是正大於100。 1399 01:02:47,320 --> 01:02:48,340 誰知道? 1400 01:02:48,340 --> 01:02:50,750 而如果計算結果為 如此,這將讓你 1401 01:02:50,750 --> 01:02:54,270 第一件事是 那裡列出,這是很高的。 1402 01:02:54,270 --> 01:02:55,840 否則,它會為您提供低。 1403 01:02:55,840 --> 01:03:01,210 所以,這只是一個非常簡單的和 有效的方式做到像的if else。 1404 01:03:01,210 --> 01:03:02,780 這就是這一切。 1405 01:03:02,780 --> 01:03:07,450 >> 如果我們寫這 作為一個if else條件, 1406 01:03:07,450 --> 01:03:12,480 那將是如果n是大於 100餘名,高回報。 1407 01:03:12,480 --> 01:03:14,220 否則,回報低。 1408 01:03:14,220 --> 01:03:17,570 這僅僅是一個更 寫它的簡潔方式。 1409 01:03:17,570 --> 01:03:27,090 >> 羅布·鮑登:所以這個特定的例子 是當你正在做的事情 1410 01:03:27,090 --> 01:03:30,190 就是這樣,這是一種模式 在這裡我使用三元非常頻繁。 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 所以,我們還沒有談到的範圍呢, 但我討厭看到字符串s分號。 1413 01:03:35,460 --> 01:03:39,150 如果n大於100,S等於高。 1414 01:03:39,150 --> 01:03:40,660 否則,S等於低。 1415 01:03:40,660 --> 01:03:45,070 這樣的模式,這五個線 代碼100字面上的時間% 1416 01:03:45,070 --> 01:03:49,800 可以被轉移到什麼 就是在那裡與三元。 1417 01:03:49,800 --> 01:03:52,340 因此,三元,一行代碼。 1418 01:03:52,340 --> 01:03:54,640 在別人的話,五。 1419 01:03:54,640 --> 01:03:56,910 這是一個例子,我點 每一次。 1420 01:03:56,910 --> 01:03:59,250 這將極大的地方 對於三元運算符。 1421 01:03:59,250 --> 01:04:00,647 它是那麼乾淨。 1422 01:04:00,647 --> 01:04:01,980 但是,人們往往不會使用它。 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> 艾里遜:把它拿走加布。 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL:所以現在你們所有的 在本週的演講學會 1426 01:04:11,110 --> 01:04:13,420 這一切都在一個 計算機是二進制的,對不對? 1427 01:04:13,420 --> 01:04:14,570 就像這裡的燈。 1428 01:04:14,570 --> 01:04:16,492 你可以是接通和關斷。 1429 01:04:16,492 --> 01:04:18,450 和一切,我的意思是 從字面上一切。 1430 01:04:18,450 --> 01:04:24,272 一些數字和字符和字符串, 甚至代碼,你寫的時候 1431 01:04:24,272 --> 01:04:26,480 它被編譯為機器 代碼之類的東西, 1432 01:04:26,480 --> 01:04:29,230 所以這一切歸結為0和1“。 1433 01:04:29,230 --> 01:04:34,540 >> 所以,當我們正在處理 與整數,這 1434 01:04:34,540 --> 01:04:38,000 是什麼,在技術上是非常 簡單,我們應該能夠做的東西 1435 01:04:38,000 --> 01:04:40,630 如添加它們,這是 最簡單的事情大概1 1436 01:04:40,630 --> 01:04:42,300 你可以做兩個整數,對吧? 1437 01:04:42,300 --> 01:04:47,410 因此,加法和減法工作得 就像它在十進制記數法, 1438 01:04:47,410 --> 01:04:50,780 在這裡,除了它是二進制的,對不對? 1439 01:04:50,780 --> 01:04:52,090 因此,它在基地2。 1440 01:04:52,090 --> 01:04:54,070 所以加1加1。 1441 01:04:54,070 --> 01:04:57,020 這給了0和1進行了過來。 1442 01:04:57,020 --> 01:05:01,335 而只是一味地這樣做,所以現在 自帶的更有趣的問題。 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> 我們知道如何代表所有 在計算機中的正整數, 1445 01:05:07,710 --> 01:05:09,870 但讓​​我們做這個練習。 1446 01:05:09,870 --> 01:05:15,240 假裝你們都在1960年或 一些試圖建立一個電腦, 1447 01:05:15,240 --> 01:05:19,950 你必須拿出的 存儲減去1的方法, 1448 01:05:19,950 --> 01:05:22,554 例如,或減去任何 整為此事。 1449 01:05:22,554 --> 01:05:23,470 你會怎麼做呢? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 任何想法? 1452 01:05:29,220 --> 01:05:31,302 就在我扔東西。 1453 01:05:31,302 --> 01:05:32,264 是嗎? 1454 01:05:32,264 --> 01:05:39,480 >> 聽眾:[聽不清]指定 一個特殊的,如果你的[聽不清]。 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL:您可以指定一個 特位,這將是0或1。 1456 01:05:42,590 --> 01:05:45,590 比方說一個,如果它是積極的 和0,如果是負面的。 1457 01:05:45,590 --> 01:05:48,171 該位,然後休息 只是存儲號碼。 1458 01:05:48,171 --> 01:05:48,670 涼爽。 1459 01:05:48,670 --> 01:05:49,990 所以這是一個非常好的主意。 1460 01:05:49,990 --> 01:05:51,550 我們有,我不知道,200。 1461 01:05:51,550 --> 01:05:54,720 如果第一位是 導通時,那麼它的加200。 1462 01:05:54,720 --> 01:05:57,270 如果它關閉,這是零下200。 1463 01:05:57,270 --> 01:05:58,380 涼爽。 1464 01:05:58,380 --> 01:06:01,350 >> 只有一個小 問題這一點, 1465 01:06:01,350 --> 01:06:05,370 這就是,如果我們試圖總結的東西了。 1466 01:06:05,370 --> 01:06:18,910 所以,想像我們有11111在這裡, 我們正在總結這與00100什麼的。 1467 01:06:18,910 --> 01:06:21,630 如果這兩個是積極的,這很好。 1468 01:06:21,630 --> 01:06:24,470 但是,如果一個 它們是負的,像 1469 01:06:24,470 --> 01:06:27,410 讓我們說,這一點在這裡 是一個負責任的 1470 01:06:27,410 --> 01:06:31,390 for--我打算做一個separate-- 所以這一個裝置,該數字在這裡 1471 01:06:31,390 --> 01:06:31,970 是正的。 1472 01:06:31,970 --> 01:06:34,450 這個意味著該 此數字為負數,對不對? 1473 01:06:34,450 --> 01:06:37,010 >> 但是,當你 要總結他們,你 1474 01:06:37,010 --> 01:06:40,180 需要一個if語句 他說哦,如果這是0, 1475 01:06:40,180 --> 01:06:43,479 那麼我的總和將是 不同的東西,對吧? 1476 01:06:43,479 --> 01:06:45,270 所以這是一個稍微 更聰明的方式做 1477 01:06:45,270 --> 01:06:48,520 即,這是所謂的二的補碼。 1478 01:06:48,520 --> 01:06:52,350 所以基本上我們 做的是我們定義零下1 1479 01:06:52,350 --> 01:06:57,250 要的東西,如果 我們加起來1給了我們0。 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 讓我再說一遍。 1482 01:07:00,860 --> 01:07:03,280 所以我們可以說,這是這裡1。 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 是什麼東西 當然在正整數 1485 01:07:13,570 --> 01:07:15,570 加入給我們0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 如果我們嘗試將它添加到這個數字? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 我們要have--好了,讓我們添加。 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 我們將有1加1 為0,然後將其攜帶以上。 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 然後我們將再次得到0。 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 我越來越糊塗了。 1496 01:07:48,820 --> 01:07:51,670 而你會得到0和 0 0 0 0 0。 1497 01:07:51,670 --> 01:07:52,450 大量的0。 1498 01:07:52,450 --> 01:07:56,240 >> 在最後的,我們不 要能夠進行一遍, 1499 01:07:56,240 --> 01:07:59,614 因為假設我們只處理 用一個字節,所以只有8位。 1500 01:07:59,614 --> 01:08:02,780 所以電腦的默認操作是什麼 只是忘記有關[聽不清] 1501 01:08:02,780 --> 01:08:03,279 行? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 因此,這就是所謂的 的二的補碼。 1504 01:08:06,880 --> 01:08:15,180 我們簡單地定義減去1是 這裡的事情,如果你添加了1 1505 01:08:15,180 --> 01:08:15,995 會給你0。 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 這就是很酷 因為我們真的不 1508 01:08:20,180 --> 01:08:24,090 需要後期實施 不同類型的總和的 1509 01:08:24,090 --> 01:08:26,590 這取決於這是否是一個 負或正數。 1510 01:08:26,590 --> 01:08:27,465 這是否有道理? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> 這麼一件事,我們做 這裡為了將 1513 01:08:32,370 --> 01:08:38,550 積極和消極之間 整數,然後我們會拋一切, 1514 01:08:38,550 --> 01:08:40,930 然後我們加1的號碼。 1515 01:08:40,930 --> 01:08:43,140 如果您嘗試自己做 上一張紙, 1516 01:08:43,140 --> 01:08:44,681 你會看到這是有道理的。 1517 01:08:44,681 --> 01:08:51,000 但是,如果我把這個號碼 這裡,這是5。 1518 01:08:51,000 --> 01:08:54,859 所以,如果我翻轉一切 這裡,使1,1,1,1,1。 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 翻轉,翻轉,翻轉。 1521 01:08:57,830 --> 01:09:00,130 然後我把它加1。 1522 01:09:00,130 --> 01:09:02,750 我要恰好有零下5。 1523 01:09:02,750 --> 01:09:03,250 行? 1524 01:09:03,250 --> 01:09:06,220 >> 種這是有道理的,因為如果 你試圖用數字總結本 1525 01:09:06,220 --> 01:09:10,229 我們面前,這 was--讓我們再次撥動了。 1526 01:09:10,229 --> 01:09:12,999 這是101和大量的0。 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 如果您嘗試添加這些 兩個數字一起, 1529 01:09:15,670 --> 01:09:16,961 你將有完全相同0。 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 行。 1532 01:09:19,460 --> 01:09:19,884 有問題嗎? 1533 01:09:19,884 --> 01:09:20,759 >> 聽眾:[聽不清] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL:你是什麼意思? 1536 01:09:27,280 --> 01:09:29,240 >> 聽眾:負向 正[聽不清]。 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL:不,你翻車 你加1永遠。 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 是啊。 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 好了,人物也被編碼的二進制文件。 1542 01:09:39,680 --> 01:09:42,649 我們有ASCII表,你 也看到了講座,對不對? 1543 01:09:42,649 --> 01:09:45,040 因此,它基本上是一個事物的映射。 1544 01:09:45,040 --> 01:09:50,960 在這裡,我不能強調不夠 對於一台計算機,一和65 1545 01:09:50,960 --> 01:09:52,770 從字面上同樣的事情。 1546 01:09:52,770 --> 01:10:03,430 所以,如果我寫的東西像​​炭ç 等於一,我可以在同一時間 1547 01:10:03,430 --> 01:10:06,890 只寫65在這裡,它 將是完全一樣的,好不好? 1548 01:10:06,890 --> 01:10:08,470 有沒有任何區別。 1549 01:10:08,470 --> 01:10:12,420 >> 我們通常傾向於把 字符類型的變量。 1550 01:10:12,420 --> 01:10:16,770 CHAR,不是因為他們基本上是 對於製成的,但因為 1551 01:10:16,770 --> 01:10:18,050 人類的約定。 1552 01:10:18,050 --> 01:10:22,410 但是,你可以處理整數 而不是char類型的變量, 1553 01:10:22,410 --> 01:10:23,490 你會沒事的。 1554 01:10:23,490 --> 01:10:28,410 唯一的實際差別 一個char c和一個int我之間 1555 01:10:28,410 --> 01:10:31,960 是一個int在大多數四個字節 系統,而一個字符具有一個字節。 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 他們本質上是 同樣的事情在數據方面。 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 那麼,什麼將打印嗎? 1560 01:10:37,990 --> 01:10:43,780 在這裡,我們印刷用printf數字 用加1,只是喜歡整數, 1561 01:10:43,780 --> 01:10:46,240 字符可以總結,因此 的字符也可以被求和。 1562 01:10:46,240 --> 01:10:47,890 因此,這也正是65歲。 1563 01:10:47,890 --> 01:10:49,950 因此,有將是 66,在這裡,我們有 1564 01:10:49,950 --> 01:10:56,860 65加小負大A, 這將是的,我真的不知道。 1565 01:10:56,860 --> 01:11:00,900 但是這將是完全相同的間隙 大寫字母之間 1566 01:11:00,900 --> 01:11:07,800 和所用更小的文字,所以 我們將得到一個小,對吧? 1567 01:11:07,800 --> 01:11:08,300 是啊。 1568 01:11:08,300 --> 01:11:11,740 所以,這是怎麼回事打印 性格這正是這一個。 1569 01:11:11,740 --> 01:11:12,260 好不好? 1570 01:11:12,260 --> 01:11:12,860 有問題嗎? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> 在這裡,我們有一堆不同 類型為數值型變量。 1573 01:11:19,430 --> 01:11:20,620 我們已經談整型。 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 浮動,不過是to--這是真的 有趣,因為當我第一次聽說 1576 01:11:27,760 --> 01:11:32,320 編程早在一天 Python中,第一個節目我這輩子 1577 01:11:32,320 --> 01:11:37,480 試著寫,我看到有一個 在所謂的類型和類型稱為浮動。 1578 01:11:37,480 --> 01:11:39,800 和浮子是對於所有實數。 1579 01:11:39,800 --> 01:11:43,290 於是我問為什麼 我曾經用一個int呢? 1580 01:11:43,290 --> 01:11:45,590 因為如果我可以使用所有 實數有浮動, 1581 01:11:45,590 --> 01:11:47,120 我只想停止使用整數,對吧? 1582 01:11:47,120 --> 01:11:49,550 因為實數是 很像更通用。 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> 事實證明,這是 沒有電腦的情況下 1585 01:11:54,060 --> 01:11:58,480 因為他們根本 不同的東西。 1586 01:11:58,480 --> 01:12:01,470 所以,整數和浮點數時, 操作,你做給他們 1587 01:12:01,470 --> 01:12:04,739 是因為本質的不同 對它們的存儲方式,好不好? 1588 01:12:04,739 --> 01:12:07,280 我們要談一點 更多的關於在第二。 1589 01:12:07,280 --> 01:12:09,110 >> 所以雙只是一個更大的浮動。 1590 01:12:09,110 --> 01:12:12,830 通常在大多數系統中,一個float 是四個字節,就像一個int。 1591 01:12:12,830 --> 01:12:15,440 和雙是八個字節。 1592 01:12:15,440 --> 01:12:21,450 很長很長,其實只是一個符號 你追加到如int類型。 1593 01:12:21,450 --> 01:12:24,040 你說的很長很長詮釋這個樣子。 1594 01:12:24,040 --> 01:12:28,550 龍長整型X使它更長的時間。 1595 01:12:28,550 --> 01:12:32,310 所以在大多數系統中,這將使 八個字節,而不是通常的4。 1596 01:12:32,310 --> 01:12:35,620 而實際上你可以刪除 的,所以它只能說很長很長, 1597 01:12:35,620 --> 01:12:37,240 並且工作過,好不好? 1598 01:12:37,240 --> 01:12:42,850 你也可以做其他事情一樣 unsigned int類型,或只是再次簽名 1599 01:12:42,850 --> 01:12:43,680 也將正常工作。 1600 01:12:43,680 --> 01:12:49,370 而且,它們將使得X是一個變量 就像一切都是積極的, 1601 01:12:49,370 --> 01:12:53,231 所以你不能真正擁有負 在我們看到了這裡的路上號碼。 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 所以,下面的精彩 浮點和精度。 1604 01:12:58,650 --> 01:13:01,890 這是其中一個原因,為什麼你 想用整數來代替花車, 1605 01:13:01,890 --> 01:13:04,370 因為整數是100%準確的,對不對? 1606 01:13:04,370 --> 01:13:06,170 這正是這個數字。 1607 01:13:06,170 --> 01:13:11,910 對於浮動點,如果你 說的答案等於1比10-- 1608 01:13:11,910 --> 01:13:14,690 我碰巧確切有這個 計劃在這裡,float.c。 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 打印到20位小數。 1611 01:13:19,420 --> 01:13:23,270 1除以10,並 通常為0.1,對不對? 1612 01:13:23,270 --> 01:13:27,910 但在這裡,如果我們做 浮然後我們運行它, 1613 01:13:27,910 --> 01:13:30,320 我們看到,它不是完全0.1。 1614 01:13:30,320 --> 01:13:33,570 這是0.149的東西。 1615 01:13:33,570 --> 01:13:35,570 >> 為什麼會這樣? 1616 01:13:35,570 --> 01:13:40,390 因為你不能真正代表每 在內存中一個可能的實數 1617 01:13:40,390 --> 01:13:42,730 因為有 不可數很多。 1618 01:13:42,730 --> 01:13:48,360 所以,我們在技術上只能 表示它們的一個有限數量 1619 01:13:48,360 --> 01:13:50,470 與數據的有限量。 1620 01:13:50,470 --> 01:13:52,050 但是,這真的很有趣。 1621 01:13:52,050 --> 01:13:54,920 現在,這引出了一個 的問題,你會怎麼 1622 01:13:54,920 --> 01:13:59,299 去代表 與此位,對不對? 1623 01:13:59,299 --> 01:14:00,340 那麼如何彩車存儲? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 與整數很容易。 1626 01:14:03,730 --> 01:14:06,690 但隨著花車想要 最大限度的範圍內, 1627 01:14:06,690 --> 01:14:10,530 並希望能夠代表 巨大的數字和非常小的數字一樣 1628 01:14:10,530 --> 01:14:14,210 0.000001同時。 1629 01:14:14,210 --> 01:14:15,180 如此反复,相同的遊戲。 1630 01:14:15,180 --> 01:14:20,470 沒有任何人有任何想法如何,我們可以 去代表內存浮動? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 只是扔東西。 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 是的,請。 1635 01:14:30,856 --> 01:14:33,552 >> 聽眾:[聽不清]為 如果是兩個整數和一個 1636 01:14:33,552 --> 01:14:36,890 作為[聽不清]和一個幸福 小數點後的一切。 1637 01:14:36,890 --> 01:14:37,640 GABRIEL:好,冬暖夏涼。 1638 01:14:37,640 --> 01:14:40,300 所以兩個不同的整數。 1639 01:14:40,300 --> 01:14:45,260 你可以有12.45,所以這是12和45。 1640 01:14:45,260 --> 01:14:45,890 不錯。 1641 01:14:45,890 --> 01:14:46,973 什麼前,先要考驗你要說的話? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 同樣的事情? 1644 01:14:49,430 --> 01:14:49,930 是嗎? 1645 01:14:49,930 --> 01:14:55,630 >> 聽眾:[聽不清]符號 你分開的基礎在哪裡。 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL:科學記數法, 是啊,這通常會發生什麼。 1647 01:14:58,910 --> 01:15:01,350 因此,這就是所謂的尾數。 1648 01:15:01,350 --> 01:15:06,490 這就是什麼是真正的 號,然後將指數 1649 01:15:06,490 --> 01:15:08,780 只是那裡的逗號,不是嗎? 1650 01:15:08,780 --> 01:15:13,720 因此,這將是東西 形式1,2,3,4,5次10 1651 01:15:13,720 --> 01:15:15,000 到零下4。 1652 01:15:15,000 --> 01:15:17,800 我只是意識到that--是啊,沒錯。 1653 01:15:17,800 --> 01:15:23,372 然後這個10的負4是 要定義所在的逗號,好不好? 1654 01:15:23,372 --> 01:15:24,330 在巴西,我們使用逗號。 1655 01:15:24,330 --> 01:15:26,795 在這裡,你們用一個點。 1656 01:15:26,795 --> 01:15:27,640 這樣一個點。 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> 這是很酷的,因為這樣你可以 集中大量的位上的這個傢伙 1659 01:15:34,840 --> 01:15:40,863 這裡,在尾數,然後這 將是您的實際精度。 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 你也可以做到這一點無論是在十進制 或在二進制基礎的系統。 1662 01:15:47,175 --> 01:15:49,781 有不同 的方式來實現這一點。 1663 01:15:49,781 --> 01:15:50,280 有問題嗎? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 是嗎? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 聽眾:有多少地方 小數[聽不清]呢? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL:這是一個複雜的問題, 因為它從來沒有真正100%準確, 1670 01:16:12,610 --> 01:16:15,680 因為當你看到這裡,為 一些數字是100%精確的。 1671 01:16:15,680 --> 01:16:20,350 我相信,如果我們把0.5在這裡, 這將是100%準確的。 1672 01:16:20,350 --> 01:16:22,220 這將是0.500000。 1673 01:16:22,220 --> 01:16:24,170 所以在這種情況下,它是完美的。 1674 01:16:24,170 --> 01:16:27,330 但在其他情況下, 這是少得多完美。 1675 01:16:27,330 --> 01:16:35,010 根據我的經驗,像多達四個, 小數點後五位是相當精確的。 1676 01:16:35,010 --> 01:16:38,300 如果您使用的是雙,這將 有辦法比這更精確,好不好? 1677 01:16:38,300 --> 01:16:42,750 >> 羅布·鮑登:所以剛才扔 在彩車一些情況下, 1678 01:16:42,750 --> 01:16:46,320 我從來不記得100%如何 彩車的規格實際工作, 1679 01:16:46,320 --> 01:16:52,660 但我做你永遠記得 漂浮開始變得凌亂。 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 這樣的想法是,當你真的, 真正的大數字還是真的,真的 1682 01:17:00,930 --> 01:17:03,470 小的數字,我們開始 每況愈下 1683 01:17:03,470 --> 01:17:05,860 在差異化 之間的兩個親密的浮動。 1684 01:17:05,860 --> 01:17:09,180 >> 所以,我怎麼樣想的是 浮點不精確, 1685 01:17:09,180 --> 01:17:11,890 有兩個浮筒的 如果我嘗試將它們指定 1686 01:17:11,890 --> 01:17:15,150 在C中,儘管事實是 他們是不同的數字, 1687 01:17:15,150 --> 01:17:17,340 他們將成為 解釋為相同的號碼, 1688 01:17:17,340 --> 01:17:19,006 因為我們不能將它們存儲不同。 1689 01:17:19,006 --> 01:17:20,540 我們需要使用相同的比特。 1690 01:17:20,540 --> 01:17:23,220 所以,當我們到達 真的,真的大量湧現, 1691 01:17:23,220 --> 01:17:28,460 像10交談的300 的東西,它是在該點 1692 01:17:28,460 --> 01:17:33,240 該10到300或 5次為10〜300個 1693 01:17:33,240 --> 01:17:37,020 無法區分 7次10到300。 1694 01:17:37,020 --> 01:17:39,660 所以這是一個相當大的差異 兩個數字之間。 1695 01:17:39,660 --> 01:17:43,830 >> 但是,當你趴下 到正常範圍外, 1696 01:17:43,830 --> 01:17:45,770 你往往是相當 在區分好。 1697 01:17:45,770 --> 01:17:49,020 然後當你趴下真的很小, 你也變得非常糟糕了。 1698 01:17:49,020 --> 01:17:52,529 因此,像一大堆 0.0000,它變得非常糟糕。 1699 01:17:52,529 --> 01:17:53,820 GABRIEL:是啊,這麼快註釋。 1700 01:17:53,820 --> 01:17:54,670 從來沒有做到這一點。 1701 01:17:54,670 --> 01:17:57,590 永遠不要嘗試比較 彩車使用equals等於, 1702 01:17:57,590 --> 01:18:02,800 因為即使他們幾乎 同樣,幾乎相同的是不一樣的。 1703 01:18:02,800 --> 01:18:06,360 那麼,你通常做的是你減去 其中,採取的是絕對值, 1704 01:18:06,360 --> 01:18:12,380 看看這是不是小 0.0001或類似的東西,好不好? 1705 01:18:12,380 --> 01:18:12,880 和冷靜。 1706 01:18:12,880 --> 01:18:16,630 我知道很多人都有 一些背景在Java中, 1707 01:18:16,630 --> 01:18:19,700 特別是那些誰做 AP計算機科學,對吧? 1708 01:18:19,700 --> 01:18:23,630 而Java是一種語言 這主要是基於C, 1709 01:18:23,630 --> 01:18:26,570 它有幾個非常大的差異。 1710 01:18:26,570 --> 01:18:31,430 但對於循環,如果,之類的東西 ,他們都是一樣的語法。 1711 01:18:31,430 --> 01:18:35,240 我有幾個項目在這裡展示這一點。 1712 01:18:35,240 --> 01:18:37,050 >> 因此,舉例來說,一個簡單的Hello World。 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 這是世界您好在C中,你 傢伙肯定是熟悉的, 1715 01:18:46,600 --> 01:18:49,100 而這一點,這個人是在Java中。 1716 01:18:49,100 --> 01:18:53,100 所以,在Java中,我們有這樣的 公共類,你好世界, 1717 01:18:53,100 --> 01:18:57,050 公共靜態無效 主,和字符串的args。 1718 01:18:57,050 --> 01:18:59,665 該字符串的args會 出現在C中很快。 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 但是,我們不要去那裡呢。 1721 01:19:01,990 --> 01:19:06,060 現在,我們有空隙這裡,這意味著 這主要是不帶任何參數。 1722 01:19:06,060 --> 01:19:09,220 然後我們有 的System.out.println的,這就是 1723 01:19:09,220 --> 01:19:11,140 一種等價類printf的。 1724 01:19:11,140 --> 01:19:17,150 在這裡,我們並不真正需要的反斜杠 N,因為打印LN這是否適合你。 1725 01:19:17,150 --> 01:19:19,680 其附加的反斜杠 處的N行的末端。 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> 但是,如果你進入 有點像的,你 1728 01:19:30,415 --> 01:19:32,590 可以看到,他們是 幾乎同樣的事情。 1729 01:19:32,590 --> 01:19:37,390 這樣的初始化,並且 條件,並且在更新 1730 01:19:37,390 --> 01:19:42,050 is--我錯過了一個空間,這裡 - 他們 幾乎除了Java的同樣的事情, 1731 01:19:42,050 --> 01:19:44,430 作為擁有幾個高層次的東西。 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 在這裡,我們可以做的,再加上我和 Java將自動 1734 01:19:49,610 --> 01:19:52,730 使這個我在這裡,這是 一個整數,轉換為字符串, 1735 01:19:52,730 --> 01:19:55,200 再追加 兩個串在一起。 1736 01:19:55,200 --> 01:19:57,570 在這裡,在C中,我們需要做的與%D。 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 這裡的線,對於 長得一模一樣。 1739 01:20:18,170 --> 01:20:37,760 >> 如果我們看一下,如果,在IFS 還長得一模一樣,對吧? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 所以,真正的大差異 在你在這裡看到的那些東西。 1742 01:20:44,650 --> 01:20:47,530 公共靜態的,無效的,並 那麼公共類的話。 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 因此,Java有什麼 稱為虛擬機。 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 這是非常嚴重依據是什麼 被稱為面向對象的程序設計, 1747 01:21:00,150 --> 01:21:04,120 這是一個非常,非常普遍 範式編程時下。 1748 01:21:04,120 --> 01:21:10,870 這個類的事情是你所看到的, 從面向對象的東西, 1749 01:21:10,870 --> 01:21:14,214 在你創建一個類,然後你 可以從派生類的對象。 1750 01:21:14,214 --> 01:21:16,380 我們不會說太多 不多,在CS50, 1751 01:21:16,380 --> 01:21:18,213 但是這絕對 東西真的很酷, 1752 01:21:18,213 --> 01:21:21,440 特別是如果你想進入 更複雜的Web開發 1753 01:21:21,440 --> 01:21:24,050 在該過程結束時, 像提交您的最終項目 1754 01:21:24,050 --> 01:21:26,430 和一些漂亮的框架和內容。 1755 01:21:26,430 --> 01:21:31,250 >> 所以基本上的想法是,你 不想重新實現的東西, 1756 01:21:31,250 --> 01:21:36,330 所以你創造的東西,是 非常通用的,如形狀, 1757 01:21:36,330 --> 01:21:38,310 然後創建 它從不同的形狀, 1758 01:21:38,310 --> 01:21:40,240 然後從每個 這些形狀,為您打造 1759 01:21:40,240 --> 01:21:45,110 在三個一些更具體的形狀 尺寸或類似的東西。 1760 01:21:45,110 --> 01:21:48,799 他們有這樣的層次,他們 從其他的繼承,所以 1761 01:21:48,799 --> 01:21:51,840 所有功能和所有變量 大形在這裡了,所有這些 1762 01:21:51,840 --> 01:21:54,110 將有,所有的這些都 將有,等等,等等。 1763 01:21:54,110 --> 01:21:55,640 所以這是基本的想法。 1764 01:21:55,640 --> 01:21:59,170 >> C沒有說,但是C ++ 確實有這種功能。 1765 01:21:59,170 --> 01:22:02,710 和Java是嚴重影響 通過面向對象, 1766 01:22:02,710 --> 01:22:05,310 所以這就是為什麼你看到 類在這裡所有的時間。 1767 01:22:05,310 --> 01:22:10,790 而另一件事是 該Java虛擬機。 1768 01:22:10,790 --> 01:22:13,790 所以,我覺得,是一個非常聰明的想法。 1769 01:22:13,790 --> 01:22:17,020 那麼是什麼人誰 發明了Java的確實是 1770 01:22:17,020 --> 01:22:19,630 他們不想要 兩次編譯自己的代碼 1771 01:22:19,630 --> 01:22:23,990 如果他們不得不在Windows中運行它, 或者Mac或Linux,所以他們做了什麼 1772 01:22:23,990 --> 01:22:26,740 他們是從字面上運行 像家電, 1773 01:22:26,740 --> 01:22:29,630 但你真的不看到它發生。 1774 01:22:29,630 --> 01:22:32,430 因此,他們運行一個虛擬機 你的電腦,裡面的這 1775 01:22:32,430 --> 01:22:34,940 基本上像一個 微型操作系統。 1776 01:22:34,940 --> 01:22:37,920 而且操作 系統的生命的目的 1777 01:22:37,920 --> 01:22:41,430 只是跑什麼叫做字節碼。 1778 01:22:41,430 --> 01:22:47,411 >> 因此,而不是在C中,這樣,我們將 編譯這讓若,然後運行 1779 01:22:47,411 --> 01:22:47,910 ./if。 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 我忘了反斜線。 1782 01:22:55,290 --> 01:23:00,240 在Java中,你會先做 Java的C到編譯它,if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 這不是C.它的點的java。 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 然後,你必須運行不./。 1787 01:23:12,140 --> 01:23:15,440 你得到這個新的文件 if.class,但你不能真的 1788 01:23:15,440 --> 01:23:17,980 運行if.class現在只是 像我們以前那樣。 1789 01:23:17,980 --> 01:23:19,440 這不是一個可執行文件。 1790 01:23:19,440 --> 01:23:20,630 您必須運行。 1791 01:23:20,630 --> 01:23:23,410 你必須把它送入 一個叫做Java程序, 1792 01:23:23,410 --> 01:23:28,260 並且該程序是虛擬機, 然後你做if.class,或者如果。 1793 01:23:28,260 --> 01:23:28,760 是。 1794 01:23:28,760 --> 01:23:30,890 然後它的工作原理。 1795 01:23:30,890 --> 01:23:33,740 OK,所以這是同類產品中 虛擬機發生。 1796 01:23:33,740 --> 01:23:37,700 C沒有了,所以如果我是 把這個程序在Windows機器上, 1797 01:23:37,700 --> 01:23:40,516 在Java中C.這是行不通的它。 1798 01:23:40,516 --> 01:23:41,015 有問題嗎? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 涼爽。 1801 01:23:44,030 --> 01:23:47,160 這是否超節今天。 1802 01:23:47,160 --> 01:23:49,462