Được rồi. Vì vậy, bây giờ hãy nói về một cái gì đó thực sự hữu ích trong programming-- câu điều kiện. Vì vậy, có điều kiện biểu thức cho phép các chương trình của bạn để đưa ra quyết định và chịu khác nhau ngã ba đường, một cái gì đó Tôi ám chỉ sớm hơn, tùy thuộc vào giá trị của các biến, hoặc dựa trên những gì sử dụng đầu vào tại các lập trình viên, tại dòng lệnh, hoặc nếu bạn có một dấu nhắc hay đại loại thế. C có một vài cách khác nhau để thể hiện các biểu thức có điều kiện, chúng ta đôi khi cũng sẽ gọi một Chi nhánh có điều kiện trong chương trình của bạn. Và một số trong số này đang đi tìm khá quen thuộc với bạn từ đầu, vì vậy chúng tôi thậm chí sẽ kéo chúng lên bên nhau, chỉ bạn có thể làm điều đó tương tự trong đầu của bạn. Vì vậy, nếu if-- là khá đơn giản có điều kiện. Nếu bạn nhớ lại từ xước trên ngay tại đây bạn có thể điền vào đó là hình lục giác với một biểu hiện màu xanh nếu chuột xuống hoặc nếu x là ít hơn 10, hay đại loại thế. Và sau đó, nếu x là ít hơn 10, hoặc nếu con chuột được trong thực tế, xuống, tất cả các mã bên trong mảnh ghép sẽ được thực thi. Tất cả những điều đó phù hợp với bên trong hình dạng C. Tương tự như vậy, chúng ta phải nếu trên bên trái có. Nếu biểu thức Boolean, mà tôi chỉ sử dụng như là một thay thế cho một trong những Boolean biểu thức chúng ta đã thảo luận trước đó, ngoặc móc mở, nẹp xoăn gần. Vì vậy, suy nghĩ về mở xoăn nẹp và ngoặc móc khép kín như loại tương tự như bánh sandwich hiệu lực của khối nếu bên phải từ đầu. Nếu biểu thức Boolean trong câu lệnh if là đúng sự thật, sau đó tất cả các dòng mã giữa các dấu ngoặc nhọn sẽ thực hiện theo thứ tự từ đầu đến cuối. Nếu biểu thức Boolean là sai, chúng tôi sẽ bỏ qua tất cả mọi thứ ở giữa các dấu ngoặc nhọn, bởi vì chúng ta chỉ muốn đi xuống ngã ba đó trên đường nếu biểu thức Boolean là đúng. Chúng tôi có thể thực hiện việc này một bước hơn nữa với nếu người nào khác. Vì vậy, khối này là Scratch khá giống với một trong các chúng ta đã thấy chỉ một giây trước đó, ngoại trừ phải mất hai con đường khác nhau dựa về những gì sẽ xảy ra. Vì vậy, nếu con chuột đã giảm, hoặc nếu x là ít hơn 10, chúng tôi sẽ làm tất cả mọi thứ đó là ở giữa mà ngã ba đầu tiên, mà đầu tiên C., Nếu không, nếu con chuột là lên, hoặc x là không ít hơn 10, chúng tôi sẽ làm tất cả mọi thứ trong set thứ hai. Và đó cũng tương tự như những gì bạn thấy đây để biểu C. Nếu Boolean, làm các công cụ giữa lần đầu tiên đặt dấu ngoặc nhọn. Khác, làm những thứ giữa thứ hai đặt trong dấu ngoặc nhọn. Vì vậy, nếu các Boolean biểu thức là đúng, chúng tôi sẽ làm bất cứ điều gì giữa các thiết lập đầu tiên. Nếu biểu thức Boolean là sai, đó sẽ kích hoạt các khác, và chúng tôi sẽ làm bất cứ điều gì trong tập thứ hai của dấu ngoặc nhọn. Một lần nữa, trên xuống dưới, tất cả Ranh giới giữa các dấu ngoặc. Trong C, nó có thể tạo ra if-else if-else chuỗi. Trong thực tế, bạn có thể có if-else if-else if-else, nếu, và vv và vv và vv trên. Trong Scratch, điều này đòi hỏi làm tổ khối. Bạn thêm một if-else, và bạn phải đưa nhau bên trong của người khác, và như vậy, và nó đã loại lồng nhau và phức tạp. Nhưng C, chúng ta không cần phải làm điều đó. Chúng ta có thể thực sự chỉ có nó là một chuỗi như thế này. Một lần nữa, như bạn có thể mong đợi, tất cả các chi nhánh là loại trừ lẫn nhau. Bạn chỉ có thể bao giờ đi xuống một trong các chi nhánh. Nếu điều này là đúng. Nếu không, nếu điều này là đúng. Nếu không, nếu điều này là đúng. Nếu không, làm được điều này. Vì vậy, tất cả bốn chi nhánh tại đây Ví dụ là loại trừ lẫn nhau. Đó là một chuỗi if-else if-else. Có thể mặc dù, và đôi khi rất hữu ích, để tạo ra một chuỗi không chi nhánh loại trừ lẫn nhau. Trong ví dụ này, chỉ có ba và chi nhánh thứ tư là loại trừ lẫn nhau. Nó có thể là bạn có thể đáp ứng các điều kiện đầu tiên, và bạn có thể thỏa điều kiện thứ hai, và bạn có thể đáp ứng condition-- thứ ba trong trường hợp này bạn sẽ đi xuống các chi nhánh đầu tiên, sau đó bạn đi xuống một chi nhánh thứ hai, sau đó bạn sẽ đi xuống các chi nhánh thứ ba. Hoặc có lẽ bạn đáp ứng đầu tiên điều kiện và điều kiện thứ hai, nhưng bạn không đáp ứng điều kiện thứ ba. Trong trường hợp này bạn đi xuống đầu tiên chi nhánh và các chi nhánh thứ hai, và sau đó là chi nhánh thứ tư, Lý do cho điều này là sự khác sẽ chỉ ràng buộc đối với gần nhất nếu. Vì vậy, mặc dù có một người khác ở đây, mà không nhất thiết phải tạo ra một lẫn nhau chuỗi độc quyền của tất cả mọi thứ. Nó chỉ có các biểu hiện đó với Boolean biểu 3-- đó là loại trừ lẫn nhau với những người khác. Vì vậy, nó là có thể, và đôi khi khá hữu ích, như tôi đã nói, để tạo ra một chuỗi ngành không loại trừ lẫn nhau. Chúng ta hãy nhìn vào một khác nhau loại điều kiện, bạn chưa từng thấy trước đây trong Scratch. Có điều gì đó gọi là câu lệnh switch. Các lệnh switch loại gọn gàng vì nó một câu lệnh điều kiện cho phép bạn chỉ định các trường hợp riêng biệt, thay vì dựa vào Boolean biểu thức để đưa ra quyết định cho bạn. Vì vậy, ví dụ, chúng ta hãy nói mà tôi có chương trình này, và tôi yêu cầu người sử dụng để cung cấp đầu vào cho tôi. Vì vậy, tôi nói, int x = Nhận Int (), và nếu bạn không quen thuộc nào, được int là một chức năng mà là cũng bao gồm trong thư viện CS50, vì vậy nếu bạn #include CS50.H bạn sẽ có truy cập để Nhận Int () và tất cả của nó cousins-- GetFloat, GetString, và như vậy. Về cơ bản một Nhận chức năng cho mỗi kiểu dữ liệu mà chúng ta đã thảo luận. Vì vậy, Int x bằng getInt. Về cơ bản những gì đang xảy ra là tôi đang ở nhà ga. Tôi đang yêu cầu người dùng nhập vào một số. Và ở đây tôi là chuyển đổi những gì tôi đang làm, tùy thuộc về những gì người dùng gõ tại dấu nhắc. Vì vậy, nếu họ đánh máy một, tôi in ra một. Và sau đó tôi phá vỡ. Nếu họ gõ hai, tôi in ra hai. Và sau đó tôi phá vỡ. Điều quan trọng là để phá vỡ giữa từng trường hợp bởi vì nếu không bạn sẽ rơi qua. Vì vậy, nếu tôi không có bất kỳ nghỉ ở đó, và người sử dụng một đánh máy, điều gì sẽ xảy ra là nó sẽ in một, hai, ba, xin lỗi. Đó là loại hành vi kỳ lạ, phải không? Bạn có thể nghĩ như vậy. Nhưng thực sự có một số trường hợp này có thể là một điều khá hữu ích. Vì vậy, đây là một ví dụ của một chuyển đổi tuyên bố mà tôi bỏ qua các vi phạm. Nhưng tôi làm điều đó vào mục đích. Vì vậy, những gì xảy ra ở đây? Hãy suy nghĩ cho một thứ hai. Bạn thậm chí có thể muốn tạm dừng video. Điều gì xảy ra ở đây nếu sử dụng các loại bốn? Vì vậy, tôi đã yêu cầu người sử dụng cho đầu vào. Và họ cung cấp các giá trị 4. Được được in khi tôi làm gì đó? Trên slide trước đó, đã có giờ nghỉ giữa tất cả các trường hợp. Và do đó, nó sẽ chỉ in bốn và sau đó dừng lại. Nhưng trong trường hợp này, nó sẽ không. Điều gì sẽ xảy ra bạn là sẽ giảm qua từng trường hợp. Vì vậy, trong trường hợp này tôi đã tổ chức các trường hợp của tôi trong một cách như vậy mà nếu sử dụng các loại 4, Tôi sẽ in bốn, ba, hai, một, nổ ra. Và nếu họ đánh máy 5, tôi sẽ bắt đầu lúc năm và làm điều tương tự. Nếu họ đánh máy 1, tôi sẽ chỉ cần làm một, nổ ra. Vì vậy, trong trường hợp này, tôi đang sử dụng một chuyển đổi loại khéo léo như vậy mà tôi không có ý định để rơi qua tất cả các trường hợp. Nhưng nói chung, có lẽ bạn đang sẽ muốn phá vỡ giữa tất cả trong số họ, trừ khi bạn có một tình huống như thế này đâu bạn loại tận dụng thực tế là bạn sẽ thấy mùa thu thông qua các trường hợp mà không cần nghỉ ngơi. Vì vậy, đó là thứ hai của chính loại câu điều kiện. Cuối cùng trong số đó là:? Vì vậy, tôi có hai đoạn mã C ở đây. Một bên trái và một bên phải. Việc một bên trái nên có lẽ là khá quen thuộc với bạn. Tôi có Int x. Và tôi có lẽ nên đã yêu cầu người sử dụng for-- này có lẽ nên được Int x bằng getInt, hoặc một cái gì đó như thế. Và sau đó tôi đang làm cho một quyết định. Nếu một số biểu thức Boolean là đúng, gán x giá trị 5. Nếu không, gán giá trị x 6. Mà bên trái có lẽ nên được khá quen thuộc từ thảo luận của chúng Nếu khác của chỉ một thời gian trước đây. Bạn có thể ngạc nhiên khi biết rằng đường bên phải làm chính xác những điều tương tự? Vì vậy, đây được gọi là: hoặc đôi khi được gọi là các nhà điều hành bậc ba. Và nó đẹp, thoáng mát. Nó thường được sử dụng như một mẹo dễ thương. Nhưng những gì nó cho phép bạn làm là để Nếu mô phỏng một khác với thực sự nhỏ, thực sự trivially ngắn nhánh có điều kiện. Thông thường bạn sẽ không sử dụng: nếu bạn có sáu dòng mã giữa mỗi bộ niềng răng của xoăn. Nhưng nếu bạn chỉ đưa ra quyết định nhanh chóng, nếu bạn đang đi để làm một điều hay khác và nó rất đơn giản, này có thể là một ví dụ về làm thế nào để làm điều đó với: nhà điều hành bậc ba. Vì vậy, Int x bằng biểu thức? Điều sau khi câu hỏi nhãn hiệu là giá trị gì của x sẽ được nếu biểu thức là đúng. Điều sau đại tràng là những gì giá trị của x sẽ là nếu biểu thức là sai. Vì vậy, tôi tự hỏi mình, là biểu thức có đúng không? Nếu nó là, gán x giá trị 5. Nếu nó không phải, gán giá trị x 6. Một lần nữa, như tôi đã nói. Điều này thường chỉ là một mẹo dễ thương. Và đôi khi nếu bạn trở thành thực sự thoải mái với nó, bạn sẽ làm điều này bởi vì nó trông loại mát mẻ trong chương trình của bạn. Nói chung tôi trình bày nó để bạn bây giờ để bạn quen với nó nếu bạn nhìn thấy nó. Nhưng chắc chắn biết bạn không có để viết nó trong bất kỳ của mã của bạn. Nhưng nó là một cái gì đó để làm quen với, vì bạn chắc chắn sẽ gặp phải đoạn mã ở đây và có nơi này: cú pháp, AKA các nhà điều hành ternary, được sử dụng. Tóm tắt như vậy nhanh chóng trên những điều kiện đang có, và những tùy chọn có sẵn cho bạn trong C. Bạn có Nếu và nếu-else, và nếu người nào khác nếu, vân vân. Bạn có thể sử dụng các biểu thức Boolean cho những người đưa ra quyết định. Với báo cáo chuyển đổi bạn sử dụng trường hợp rời rạc để đưa ra quyết định. Bạn đặc biệt sẽ nói, nếu nó một, hoặc nếu nó là hai, hoặc nếu đó là ba, Tôi sẽ làm điều này, hoặc điều này, hoặc điều này. Và: có thể được sử dụng để thay thế rất đơn giản chi nhánh if-else, hoặc nếu-else chuỗi để làm mã của bạn trông hơi lạ mắt. Tôi Doug Lloyd. Và đây là CS50.