[MUSIC CHƠI] DOUG LLOYD: Hi, vì vậy chúng ta nói về các nhà khai thác trong C. Vì vậy, chúng tôi đã nhìn thấy một, trong thực tế, bằng các toán tử gán. Nó cho phép chúng ta chỉ cần đặt một giá trị vào một biến. Đó là sự phân công điều hành, dấu bằng. Để thao tác và làm việc với các giá trị và các biến trong C, chúng tôi có một số nhà khai thác lúc xử lý của chúng tôi là chúng tôi có thể sử dụng. Chúng ta hãy nhìn vào một số thành ngữ thông dụng bắt đầu với toán tử số học. Như bạn có thể mong đợi, chúng ta có thể làm hoạt động toán học cơ bản khá trong C. Chúng tôi có thể cộng, trừ, nhân, và số chia bằng cách sử dụng cộng, trừ, sao, và cắt giảm tương ứng. Dưới đây là một vài dòng mã mà chúng tôi làm điều đó. Vì vậy, chúng tôi có int x = y + 1. Giả sử rằng một nơi nào đó lên trên dòng mã này chúng tôi đã nói int y bằng 10. Giá trị của x là gì sau khi thực thi dòng đầu tiên của mã? Bạn đã nói 11? Bạn đã đúng. Tại sao vậy? Vâng, y là 10. Một số int tôi nói x = 10 + 1. 10 cộng với 1 là 11. Vì vậy, giá trị 11 được lưu trữ trong biến x. Không quá xấu, phải không? Làm thế nào về dòng tiếp theo này mã? x bằng x 5 lần. Vâng, trước khi chúng ta thực hiện dòng mã này, x là 11. Vì vậy, giá trị của những gì là x sau dòng mã này? Mất một giây. Vì vậy, x bằng x 5 lần. x là 11. Vì vậy, x bằng 11 lần 5. Hoặc 55. Vì vậy, nếu bạn nói 55, bạn muốn được quyền. Bây giờ, nó có thể là một chút bối rối, nhưng với cách phân công các công trình trong C là giá trị bên phải được giao cho các giá trị bên trái. Vì vậy, đầu tiên chúng tôi đánh giá x 5 lần. Vì vậy, 11 lần 5 là 55. Và sau đó chúng tôi lưu trữ giá trị đó trong x. 11 mà đã có từ trước đến giờ được ghi đè. Vì vậy, giá trị x của doanh nghiệp là 55. Hy vọng rằng đó khá đơn giản. Có một nhà điều hành mà bạn đã có lẽ không nhất thiết phải nghe gọi này, nhưng bạn đã chắc chắn làm việc với trong quá khứ nếu bạn nhớ ngày của bạn dài phân cách trở lại trường lớp. Nó được gọi là các nhà điều hành module. Những gì mô đun nào đó là cung cấp cho bạn phần còn lại khi bạn chia hai số với nhau. Vì vậy, nếu tôi nói chia cho 13 4, phần còn lại là những gì? Và giá trị đó sẽ được tính bởi các nhà điều hành module. Vì vậy, tôi có một dòng mã ở đây, int m bằng 13 mod 4. Và tôi nói ở đây trong một bình luận giá trị của m tại là 1. Tại sao tôi nói vậy? Vâng, làm các phép chia dài ra trong bạn đầu, nếu bạn chịu với tôi trong một giây. Vì vậy, tôi đã 4 chia cho 13. 4 đi vào 13 ba lần với dư là 1. Vì vậy, về cơ bản, tất cả các điều hành module làm là nó cho bạn biết khi bạn phân chia, bạn sẽ có được phần còn lại. Bạn có thể nghĩ rằng đó là thực sự không phải là một điều khủng khiếp hữu ích, nhưng bạn sẽ ngạc nhiên, trên thực tế, bằng cách thường xuyên như thế nào modulo nhà điều hành có thể có ích. Có một vài vấn đề chúng tôi sẽ làm CS50 mà đối phó với nó. Nó cũng tốt cho làm những thứ như số ngẫu nhiên. Vì vậy, ví dụ nếu bạn đã bao giờ nghe nói về một bộ tạo số ngẫu nhiên, đó là sẽ cung cấp cho bạn một số từ 0 đến một số lượng rất lớn. Nhưng có lẽ bạn chỉ thực sự cần một số 0-20. Nếu bạn sử dụng các toán tử modulus về con số khổng lồ được tạo ra bởi các máy phát điện số ngẫu nhiên, bạn sẽ mất bất cứ điều gì giá trị to lớn, nó là, chia nó cho 20, và nhận được phần còn lại. Phần còn lại chỉ có thể là một giá trị từ 0 đến 19. Vì vậy, bạn sử dụng toán tử modulus để có số lượng khổng lồ này và gọt nó thành một cái gì đó thêm một chút ý nghĩa. Tôi chắc rằng bạn sẽ có có thể sử dụng cả hai cách đó tại một số thời điểm trong tương lai trong CS50. Vì vậy, C cũng cho chúng ta một cách áp dụng một số học vận hành một biến duy nhất trong một chút cách nhanh hơn. Vì vậy, trong các slide trước, chúng ta thấy x = x 5 lần. Mà làm việc. x lần 5 sau đó được lưu trữ lại trong x. Có một cách ngắn hơn để làm điều đó, suy nghĩ, và nó là cú pháp x lần bằng 5. Đó là chính xác những điều tương tự như nói x = x 5 lần. Nó chỉ là một chút cách ngắn hơn để làm điều đó. Và khi bạn nhìn thấy một số Mã phân phối hoặc bạn xem một số mẫu mã mà làm những việc như thế này, chỉ được làm quen với những gì các cú pháp nghĩa. Bạn chắc chắn không có để sử dụng nó, nhưng nếu bạn làm thế, nó có thể làm cho mã của bạn nhìn một chút tinh quái. Và biết rằng bạn cũng có thể sử dụng bất kỳ các nhà khai thác khác nhau, chúng tôi đã đã thấy trước thay vì lần. Bạn có thể nói cộng với x = 5, trừ bằng 5, thời gian, phân chia, và mod. Tất cả những người làm việc. Có một cái gì đó cũng đó là rất phổ biến trong C mà chúng tôi đã quyết định tinh chỉnh mà thậm chí hơn nữa. Tăng dần biến của 1 hoặc giảm một biến bằng 1 là một thing-- phổ biến như vậy đặc biệt khi chúng ta nói về vòng một chút sau on-- rằng chúng tôi đã quyết định thay vì nói một cái gì đó giống như x cộng với bằng 1, hoặc x bằng X cộng 1, chúng tôi đã thậm chí ngắn trao rằng với x cộng với cộng với. Vì vậy, x bằng X cộng 1, x cộng với bằng 1, và x cộng với cộng với tất cả làm điều tương tự. Tất cả họ đều tăng x 1. Nhưng đó incrementing giảm các chữ bằng 1 là rất phổ biến mà chúng ta có cộng cộng trừ trừ đi cho phép chúng ta viết tắt mà hơn nữa. Vì vậy, chúng ta hãy chuyển bánh răng cho thứ hai và nói chuyện về các biểu thức Boolean. Tất cả cũng là loại rơi vào hạng mục chung của các nhà khai thác. Nhưng biểu thức Boolean, không giống như các toán tử số học, được sử dụng để so sánh các giá trị. Vì vậy, một lần nữa, tất cả các biểu thức Boolean trong C đánh giá cho một trong hai giá trị nhớ lại. Đúng hay sai. Đó là hai giá trị duy nhất Biến Boolean có thể mất trên. Chúng tôi có thể sử dụng kết quả của một biểu thức Boolean trong rất nhiều cách khác nhau trong lập trình. Trong thực tế, bạn sẽ có làm điều này khá nhiều. Ví dụ, chúng ta có thể quyết định, tốt, nếu điều kiện là đúng, có lẽ tôi sẽ lấy cái này chi nhánh xuống mã của tôi. Một điều kiện, do đó, để nói chuyện. Chúng tôi sẽ tìm hiểu về những sớm quá. Hoặc có thể, miễn là điều này là đúng, tôi muốn để giữ làm này hơn và hơn và hơn. Một vòng lặp. Trong cả hai trường hợp, biết rằng chúng ta đang sử dụng một biểu thức Boolean, một đúng hay sai, để quyết định có hay không để có một con đường đặc biệt. Đôi khi chúng tôi đang làm việc với các biểu thức Boolean, chúng tôi sẽ sử dụng các biến kiểu Bool. Bạn có thể đã tuyên bố một Bool gõ biến, và bạn sẽ sử dụng trong của bạn Biểu thức Boolean. Nhưng bạn không luôn luôn phải làm. Khi nó quay ra, trong C, mỗi phi 0 giá trị là giống như nói đúng. Nếu bạn đã tuyên bố một biến kiểu Boolean, và gán cho nó giá trị đích thực, đó là giống như khai báo một số nguyên và gán cho nó giá trị 1, 2, 3, hoặc thực sự bất kỳ giá trị nào khác hơn 0. Bởi vì trong C, mỗi phi-0 giá trị là đúng. 0, mặt khác, là sai. Điều này có thể đến trong tiện dụng sau này để biết, nhưng chỉ một cái gì đó để giữ trong tâm trí. Chúng tôi không luôn luôn phải sử dụng Biến kiểu Boolean khi chúng ta đang làm việc với các biểu thức Boolean. Có hai loại chính của Boolean biểu thức rằng chúng tôi sẽ làm việc với. Khai thác hợp lý và toán tử quan hệ. Ngôn ngữ có không đề quan trọng. Nó thực sự chỉ là cách tôi đang tập trung chúng. Và bạn sẽ chắc chắn, tôi nghĩ, một cách nhanh chóng nhận ra những gì một nhà điều hành quan hệ là, dựa trên những gì họ đang khi chúng ta nói về chúng trong một giây. Nhưng đừng lo lắng về thiết ghi nhớ các toán tử logic hạn hoặc nhà điều hành quan hệ. Tôi chỉ sử dụng nó vào nhóm chúng một cách hợp lý. Vì vậy, chúng ta hãy nhìn vào ba nhà khai thác hợp lý rằng chúng ta sẽ thấy khá bit trong lập trình trong CS50 và trong lập trình nói chung. Hợp lý và là sự thật, nếu và chỉ khi cả hai toán hạng là đúng sự thật. Nếu không sai. Trường hợp nào đó nghĩa là gì? Vì vậy, chúng ta hãy nói rằng tôi đang ở một chỉ trong mã của tôi, nơi tôi có hai biến, x và y. Và tôi muốn quyết định xem để làm một cái gì đó trong mã của tôi dựa trên nếu x là đúng sự thật và y là đúng. Tôi chỉ muốn làm điều đó nếu cả hai đều đúng, nếu không tôi không muốn đi xuống mà con đường bởi vì nó không phải đi để giúp tôi. Nếu x & & y những gì tôi có thể nói là. Đó sẽ là một Boolean logic biểu hiện so sánh x và y và tham gia một con đường nhất định dựa trên những gì giá trị của họ. Vì vậy, nếu x là đúng sự thật và y là đúng dựa vào bảng sự thật này ở đây, chỉ khi đó chúng ta sẽ đi con đường đó. Nếu x, & & y. Nó chỉ true-- và chỉ là đúng nếu x là đúng sự thật và y là đúng. Nếu một trong hai là sai, như chúng ta thấy các bảng sự thật, sau đó cả hai x và y là không đúng sự thật. Và như vậy, x & & y là sai. Logical OR là đúng nếu và chỉ nếu ít nhất một toán hạng là đúng. Nếu không sai. Vì vậy, hợp lý và cần thiết cả x và y là đúng. Logical OR đòi hỏi x là đúng hay y là đúng hay cả x và y là đúng. Vì vậy, một lần nữa, chúng tôi loại tìm mình trong một tình huống nơi chúng ta sẽ mã của chúng tôi, và chúng tôi đến một ngã ba đường. Và chúng tôi muốn đi xuống một con đường đặc biệt nếu x là đúng hoặc y là đúng, nhưng không phải nhất thiết nếu cả hai đều đúng. Nhưng nếu có thể cả hai đều đúng. Vì vậy, nếu x là đúng sự thật và y là đúng, chúng ta sẽ đi con đường đó. x là đúng. Một trong số đó là sự thật, đúng không? Nếu x là đúng sự thật và y là đúng. Nếu x là đúng, và y là sai, một trong số đó vẫn là sự thật. Vì vậy, x hoặc y vẫn là sự thật. Nếu x là sai, và y là đúng sự thật, một trong số đó vẫn là sự thật, đúng không? y là đúng, trong trường hợp này. Vì vậy, nó đúng là x hay y là đúng. Chỉ khi x là sai lầm và y là sai sao chúng ta không đi theo con đường đó, bởi vì không x hay y là đúng. Bây giờ, nếu bạn đang tìm kiếm vào màn hình ngay bây giờ và tự hỏi những gì mà Biểu tượng là cho logic OR, nó được gọi là các thanh dọc. Và nếu bạn nhìn vào bàn phím của bạn trong một phút, khi tôi đang làm bây giờ, nó thường là chỉ ở trên Phím Enter, trên hầu hết các bàn phím, trên cùng một phím với các dấu gạch chéo ngược. Nó cũng thường là ngay bên cạnh các dấu ngoặc vuông. Vì vậy, nó có thể là một chìa khóa mà bạn đã không đánh máy rất nhiều trong quá khứ. Nhưng, nếu bạn đã bao giờ làm so sánh logic, như chúng tôi sẽ làm một rất nhiều trong khóa học, đó là sẽ có ích cho tìm khóa đó và sử dụng nó. Vì vậy, nó thường là trên cùng một phím như dấu gạch chéo ngược ngay trên Enter. Các toán tử logic cuối cùng là KHÔNG. Và KHÔNG khá dễ hiểu. Nó sẽ đảo ngược giá trị của toán hạng của nó. Nếu x là đúng, thì không x là sai. Nếu x là sai, sau đó không x là đúng. Đôi khi bạn sẽ nghe thấy biểu tượng này phát âm như tiếng nổ hoặc chấm than Hay không. Đó là khá nhiều tất cả những điều tương tự. Trong trường hợp bạn nghe mà nói, bạn không chắc chắn điều đó có nghĩa, nó chỉ là dấu chấm than điểm, nhưng đôi khi nó được gọi là một vài điều khác nhau. Tất cả các quyền, vì vậy mà mất quan tâm của các nhà khai thác hợp lý. Vì vậy, chúng ta hãy nói về toán tử quan hệ. Một lần nữa, nếu bạn đã quen thuộc với điều này số học trở lại trường lớp, bạn có thể quen với cách làm việc đã. Những hành xử chính xác như bạn mong muốn. Vì vậy, ít hơn đó là sự thật, trong này Ví dụ, nếu x là ít hơn so với y. Vì vậy, nếu x là 4 và y là 6, x là ít hơn so với y. Đung. Nhỏ hơn hoặc bằng hoạt động khá tương tự. Nếu x là 4, và y là 4, sau đó x là nhỏ hơn hoặc bằng với y. Lớn hơn. x lớn hơn y. Và lớn hơn hoặc bằng, x là lớn hơn hoặc bằng y. Nếu đó là sự thật, sau đó bạn sẽ vượt qua biểu hiện đó, và bạn sẽ đi xuống rằng con đường trên đường. Nếu bạn có một nếu x lớn hơn y, và x được, trên thực tế, lớn hơn y, bạn sẽ làm bất cứ điều gì là tùy thuộc vào tình trạng đó. Chú ý rằng chúng ta không có một nhân vật duy nhất cho ít hơn hoặc bằng, như bạn có thể quen thuộc với từ sách giáo khoa môn toán. Vì vậy, chúng tôi có ít hơn so với biểu tượng, tiếp theo là một dấu bằng. Đó là cách chúng tôi đại diện ít hơn hoặc bằng. Và tương tự, chúng ta làm điều đó cho lớn hơn hoặc bằng. Trận chung kết hai quan hệ nhà khai thác đó là quan trọng đang thử nghiệm cho sự bình đẳng và bất bình đẳng. Vì vậy, nếu x bằng bằng y, là sự thật nếu x và y của giá trị là như nhau. Nếu x là 10, và y là 10, sau đó x bằng bằng y là đúng. Nếu x là 10 và y là 11, x bằng bằng y là không đúng sự thật. Chúng tôi cũng có thể kiểm tra bằng cách sử dụng bất đẳng thức dấu chấm than hoặc nổ hay không, một lần nữa. Nếu x không bằng y, nếu đó là thử nghiệm, chúng tôi đang sử dụng ở đây, chúng tôi muốn được tốt để đi. Vì vậy, nếu x không bằng y, chúng tôi sẽ đi con đường đó. Hãy thực sự cẩn thận ở đây. Đó là một mistake-- thực sự phổ biến và một trong những Tôi chắc chắn đã làm khá nhiều khi Tôi đã nhận được started-- vô tình nhầm lẫn toán tử gán, equals duy nhất, cho các toán tử so sánh bình đẳng, equals đôi. Nó sẽ dẫn đến một số kỳ lạ hành vi trong mã của bạn, và thường là trình biên dịch sẽ cảnh báo bạn về nó khi bạn cố gắng và biên dịch mã của bạn, nhưng đôi khi bạn có thể có thể lẻn nó bằng. Nó không nhất thiết phải là một điều tốt mà bạn sneak nó bằng, mặc dù. Chỉ cần như vậy, nếu bạn đang làm một thử nghiệm bất bình đẳng, nếu bạn đang kiểm tra xem hai biến khác nhau có cùng giá trị bên trong của họ, đảm bảo sử dụng bằng bằng, bình đẳng và không duy nhất. Và cách mà chương trình của bạn sẽ có những hành vi bạn dự định. Tôi Doug Lloyd và đây là CS50.