[MUSIC PLAYING] Doug LLOYD: Hi, jadi mari kita berbicara tentang operator di C. Jadi, kita telah melihat satu, pada kenyataannya, sama dengan operator penugasan. Hal ini memungkinkan kita untuk hanya menempatkan nilai ke dalam variabel. Itu tugas operator, tanda sama tunggal. Untuk memanipulasi dan bekerja dengan nilai-nilai dan variabel dalam C, kami memiliki sejumlah operator kita miliki yang bisa kita gunakan. Mari kita lihat beberapa yang umum dimulai dengan operator aritmatika. Seperti yang mungkin Anda harapkan, kita dapat melakukan operasi matematika dasar cantik di C. Kita dapat menambahkan, mengurangi, mengalikan, dan nomor membagi menggunakan ditambah, dikurangi, bintang, dan garis miring, masing-masing. Berikut beberapa baris kode di mana kita melakukan itu. Jadi, kita memiliki int x sama dengan y ditambah 1. Mari kita berasumsi bahwa di suatu tempat di atas baris kode kami telah mengatakan int y sama dengan 10. Apa nilai x setelah saya mengeksekusi baris ini pertama kode? Apakah Anda mengatakan 11? Anda akan benar. Kenapa itu? Nah, y adalah 10. Beberapa yang saya katakan int x sama dengan 10 plus 1. 10 plus 1 adalah 11. Jadi, nilai 11 mendapat disimpan dalam variabel x. Tidak terlalu buruk, kan? Bagaimana tentang hal ini baris berikutnya dari kode? x sama dengan x kali 5. Nah, sebelum kita dieksekusi baris kode ini, x adalah 11. Jadi, apa nilai x setelah baris kode ini? Mengambil kedua. Jadi, x sama dengan x kali 5. x adalah 11. Jadi, x sama dengan 11 kali 5. Atau 55. Jadi jika Anda mengatakan 55, Anda akan benar. Sekarang, mungkin sedikit membingungkan, tapi dengan cara tugas yang bekerja di C adalah nilai di sebelah kanan mendapat ditugaskan untuk nilai di sebelah kiri. Jadi, pertama kita mengevaluasi x kali 5. Jadi, 11 kali 5 adalah 55. Dan kemudian kita menyimpan nilai yang di x. 11 yang ada sebelum sekarang ditimpa. Jadi nilai x adalah sekarang 55. Mudah-mudahan itu cukup mudah. Ada operator lain bahwa Anda telah mungkin tidak selalu mendengar disebut ini, tapi kau pasti bekerja dengan di masa lalu jika Anda ingat hari-hari Anda dari panjang Divisi jalan kembali di sekolah dasar. Ini disebut operator modulus. Apa modulus dilakukan adalah memberikan sisanya ketika Anda membagi dua angka bersama. Jadi, jika saya mengatakan 13 dibagi dengan 4, apa sisanya? Dan nilai yang akan dihitung oleh operator modulus. Jadi, saya memiliki baris kode di sini, int m sama dengan 13 mod 4. Dan saya katakan di sini di komentar nilai yang m sekarang adalah 1. Mengapa saya mengatakan bahwa? Nah, melakukan pembagian panjang dalam Anda kepala, jika Anda beruang dengan saya untuk kedua. Jadi, saya telah 4 dibagi dengan 13. 4 masuk ke 13 tiga kali dengan sisa 1. Jadi, pada dasarnya, semua Operator modulus tidak adalah ia memberitahu Anda ketika Anda membagi, Anda mendapatkan sisanya. Anda mungkin berpikir bahwa sebenarnya bukan hal yang sangat berguna, tetapi Anda akan terkejut, sebenarnya, oleh seberapa sering yang modulus Operator dapat berguna. Ada beberapa masalah kami akan melakukan CS50 yang berhubungan dengan itu. Ini juga baik untuk melakukan hal-hal seperti nomor acak. Jadi, misalnya jika Anda sudah pernah mendengar dari nomor acak generator, yang akan memberikan nomor dari 0 ke beberapa nomor besar. Tapi mungkin Anda hanya benar-benar membutuhkan angka 0-20. Jika Anda menggunakan operator modulus pada nomor raksasa yang akan dihasilkan oleh nomor acak generator, Anda akan mengambil apa pun Nilai besar itu, membaginya dengan 20, dan sisanya. Sisanya hanya dapat menjadi nilai 0-19. Jadi, Anda menggunakan operator modulus untuk mengambil sejumlah besar ini dan mengurangi itu ke dalam sesuatu sedikit lebih bermakna. Aku cukup yakin Anda akan dapat menggunakan kedua dari mereka di beberapa titik di masa depan dalam CS50. Jadi, C juga memberi kita cara untuk menerapkan aritmatika operator untuk variabel tunggal dengan cara yang lebih singkat sedikit. Jadi, di slide sebelumnya, kami melihat x sama dengan x kali 5. Yang bekerja. x kali 5 kemudian akan disimpan kembali x. Ada cara yang lebih pendek untuk melakukannya, pikiran, dan itu sintaks x kali sama dengan 5. Ini hal yang persis sama mengatakan x sama dengan x kali 5. Ini hanya sedikit cara yang lebih pendek untuk melakukannya. Dan ketika Anda melihat beberapa kode distribusi atau Anda melihat beberapa contoh kode yang melakukan hal-hal seperti ini, hanya akrab dengan apa artinya sintaks. Anda pasti tidak memiliki untuk menggunakannya, tetapi jika Anda melakukannya, mungkin membuat kode Anda terlihat jas hujan sedikit. Dan tahu bahwa Anda juga dapat menggunakan salah operator yang berbeda kita sudah sudah lihat sebelumnya bukan kali. Anda bisa mengatakan x ditambah sama dengan 5, dikurangi sama dengan 5, kali, membagi, dan mod. Semua dari mereka yang bekerja. Ada juga sesuatu yang begitu umum di C bahwa kami telah memutuskan untuk memperbaiki yang lebih jauh. Incrementing variabel dengan 1 atau decrementing variabel dengan 1 adalah suatu thing-- umum terutama ketika kita berbicara tentang loop sedikit kemudian on-- bahwa kami telah memutuskan bukannya mengatakan sesuatu seperti x ditambah sama dengan 1, atau x sama dengan x ditambah 1, kita sudah bahkan pendek menyerahkan bahwa untuk x plus plus. Jadi, x sama dengan x ditambah 1, ditambah x sama dengan 1, dan x plus plus semua melakukan hal yang sama. Mereka semua selisih x oleh 1. Tapi itu incrementing dan decrementing oleh 1 sangat umum bahwa kita memiliki plus plus dan minus dikurangi yang memungkinkan kita untuk singkatan yang lebih jauh. Jadi, mari kita beralih gigi untuk kedua dan berbicara tentang ekspresi Boolean. Semua yang juga jenis jatuh ke dalam kategori keseluruhan operator. Tapi ekspresi Boolean, tidak seperti operator aritmatika, digunakan untuk membandingkan nilai-nilai. Jadi, sekali lagi, semua ekspresi Boolean di C mengevaluasi ke salah satu dari dua nilai yang mungkin, ingat. Benar atau salah. Itulah satu-satunya dua nilai yang Variabel Boolean dapat mengambil. Kita dapat menggunakan hasil dari ekspresi Boolean dalam banyak cara dalam pemrograman. Bahkan, Anda akan melakukan hal ini cukup banyak. Sebagai contoh, kita mungkin memutuskan, baik, jika beberapa kondisi adalah benar, mungkin aku akan mengambil ini cabang bawah kode saya. Sebuah bersyarat, sehingga untuk berbicara. Kami akan belajar tentang mereka segera juga. Atau mungkin, asalkan ini benar, saya ingin untuk terus melakukan hal ini berulang-ulang. Sebuah loop. Dalam kedua kasus, tahu bahwa kita sedang menggunakan ekspresi Boolean, benar atau salah, untuk memutuskan apakah atau tidak untuk mengambil jalan tertentu. Kadang-kadang ketika kita sedang bekerja dengan ekspresi Boolean, kita akan menggunakan variabel jenis Bool. Anda mungkin telah dinyatakan sebuah Bool diketik variabel, dan Anda akan gunakan dalam Anda Ekspresi Boolean. Tapi Anda tidak harus selalu melakukan. Ternyata, di C, setiap non-0 Nilai adalah sama dengan mengatakan benar. Jika Anda telah menyatakan variabel jenis Boolean, dan ditugaskan itu nilai benar, itu sama seperti mendeklarasikan integer dan menetapkan nilai 1, 2, 3, atau benar-benar nilai apapun apapun selain 0. Karena dalam C, setiap non-0 nilai benar. 0, di sisi lain, adalah palsu. Ini mungkin akan berguna di kemudian hari untuk mengetahui, tetapi hanya sesuatu yang perlu diingat. Kami tidak selalu harus menggunakan Variabel jenis Boolean ketika kita bekerja dengan ekspresi Boolean. Ada dua jenis utama Boolean ekspresi bahwa kita akan bekerja dengan. Operator logika dan operator relasional. Bahasa ada tidak terlalu penting. Ini benar-benar betapa aku mengelompokkan mereka. Dan Anda akan pasti, saya pikir, cepat menyadari apa operator relasional adalah, berdasarkan apa yang mereka ketika kita berbicara tentang mereka dalam detik. Tapi jangan khawatir tentu menghafal operator logis jangka atau operator relasional. Aku hanya menggunakannya untuk kelompok mereka dalam cara yang logis. Jadi, mari kita lihat tiga operator logika bahwa kita akan melihat cukup bit dalam pemrograman di CS50 dan dalam pemrograman lebih umum. Logika AND benar, jika dan hanya jika kedua operan adalah benar. Jika tidak palsu. Di mana artinya? Jadi, mari kita mengatakan bahwa saya di titik dalam kode saya di mana saya memiliki dua variabel, x dan y. Dan saya ingin memutuskan apakah untuk melakukan sesuatu dalam kode berdasarkan jika x adalah benar dan y benar. Saya hanya ingin melakukannya jika keduanya benar, kalau tidak saya tidak ingin turun bahwa jalan karena tidak akan membantu saya. Apa yang bisa saya katakan adalah jika x & & y. Itu akan menjadi Boolean logis ekspresi membandingkan x dan y dan mengambil jalan tertentu berdasarkan apa nilai-nilai mereka. Jadi, jika x adalah benar dan y benar berdasarkan tabel kebenaran ini di sini, hanya maka kita akan pergi ke jalan itu. Jika x, y & &. Itu hanya true-- dan hanya benar jika x adalah benar dan y benar. Jika salah satu adalah palsu, seperti yang kita lihat tabel kebenaran, maka kedua x dan y tidak benar. Dan sebagainya, x & & y adalah palsu. Logis OR benar jika dan hanya jika setidaknya satu operan adalah benar. Jika tidak palsu. Jadi logis DAN diperlukan x dan y untuk menjadi kenyataan. Logis OR membutuhkan x untuk menjadi kenyataan atau y benar atau keduanya x dan y untuk menjadi kenyataan. Jadi, sekali lagi, kita menemukan jenis diri kita dalam situasi di mana kita akan kode kita, dan kami mencapai persimpangan jalan. Dan kami ingin pergi ke suatu jalan tertentu jika x benar atau y adalah benar, tetapi tidak tentu jika keduanya benar. Tapi mungkin jika keduanya benar. Jadi jika x adalah benar dan y adalah benar, kita akan pergi ke jalan itu. x benar. Salah satunya adalah benar, kan? Jika x adalah benar dan y benar. Jika x adalah benar, dan y adalah palsu, salah satunya adalah masih benar. Jadi, x atau y masih benar. Jika x adalah palsu, dan y adalah benar, salah satunya adalah masih benar, kan? y benar, dalam hal ini. Jadi, memang benar bahwa x atau y adalah benar. Hanya jika x adalah palsu dan y adalah palsu kita tidak turun jalan itu, karena tidak x atau y adalah benar. Sekarang, jika Anda sedang mencari di layar sekarang dan bertanya-tanya apa yang Simbol untuk logika OR, itu disebut bar vertikal. Dan jika Anda melihat keyboard Anda selama satu menit, seperti yang saya lakukan sekarang, itu biasanya hanya di atas Enter, pada kebanyakan keyboard, pada tombol yang sama seperti garis miring terbalik. Ini juga biasanya benar sebelah kurung persegi. Jadi, mungkin kunci yang Anda belum diketik sangat banyak di masa lalu. Tapi, jika Anda pernah melakukan perbandingan logika, seperti yang kita akan melakukan banyak di kursus, itu akan berguna untuk menemukan kunci itu dan menggunakannya. Jadi, biasanya pada tombol yang sama sebagai backslash tepat di atas Enter. Operator logis akhir adalah TIDAK. Dan tidak cukup sederhana. Ini membalikkan nilai operan nya. Jika x adalah benar, maka tidak x adalah palsu. Jika x adalah palsu, maka tidak x benar. Kadang-kadang Anda akan mendengar simbol ini diucapkan sebagai ledakan atau tanda seru atau tidak. Hal ini cukup banyak semua hal yang sama. Dalam kasus Anda mendengar bahwa lisan dan Anda tidak yakin apa artinya, itu hanya seru titik, tapi kadang-kadang itu disebut beberapa hal yang berbeda. Baiklah, sehingga dibutuhkan peduli dari operator logika. Jadi, mari kita bicara tentang operator relasional. Sekali lagi, jika Anda terbiasa dengan ini aritmatika kembali sekolah dasar, Anda mungkin akrab dengan bagaimana pekerjaan tersebut sudah. Berperilaku persis seperti yang Anda harapkan. Jadi kurang dari itu benar, dalam hal ini Misalnya, jika x kurang dari y. Jadi, jika x adalah 4 dan y adalah 6, x kurang dari y. Itu benar. Kurang dari atau sama dengan bekerja cukup sama. Jika x adalah 4, dan y adalah 4, maka x kurang dari atau sama dengan y. Lebih besar dari. x lebih besar dari y. Dan lebih besar dari atau sama dengan, x lebih besar dari atau sama dengan y. Jika itu benar, maka Anda akan lulus ekspresi itu, dan Anda akan turun bahwa jalan di jalan. Jika Anda memiliki jika x lebih besar dari y, dan x, pada kenyataannya, lebih besar dari y, Anda akan melakukan apapun yang tunduk pada kondisi itu. Perhatikan bahwa kita tidak memiliki karakter tunggal untuk kurang dari atau sama dengan, seperti yang Anda mungkin akrab dengan buku pelajaran matematika dari. Jadi, kita memiliki kurang dari simbol, diikuti oleh tanda sama. Itulah cara kami mewakili kurang dari atau sama dengan. Dan sama, kita melakukan itu untuk lebih besar dari atau sama dengan. Final dua relasional operator yang penting menguji untuk kesetaraan dan ketidaksetaraan. Jadi, jika x sama dengan y sama, benar jika x dan y yang nilainya sama. Jika x adalah 10, dan y adalah 10, maka x sama sama y benar. Jika x adalah 10 dan y adalah 11, x sama sama y tidak benar. Kami juga dapat menguji untuk ketidaksetaraan menggunakan tanda seru atau ledakan atau tidak, lagi. Jika x tidak sama dengan y, jika itu tes yang kami gunakan di sini, kita akan baik untuk pergi. Jadi, jika x tidak sama dengan y, kita akan pergi ke jalan itu. Sangat berhati-hati di sini. Ini adalah kesalahan-benar umum dan salah satu yang saya pasti membuat cukup banyak ketika Aku mulai started-- untuk sengaja kesalahan operator penugasan, equals tunggal, untuk operator kesetaraan perbandingan, equals ganda. Ini akan menyebabkan beberapa aneh perilaku dalam kode Anda, dan biasanya kompilator akan memperingatkan Anda tentang hal itu ketika Anda mencoba dan mengkompilasi kode Anda, tapi kadang-kadang Anda mungkin bisa menyelinap dengan. Ini tidak selalu hal yang baik Anda menyelinap dengan, meskipun. Hanya jadi jika Anda melakukan tes ketidaksetaraan, jika Anda memeriksa apakah dua variabel yang berbeda memiliki nilai yang sama dalam diri mereka, pastikan untuk menggunakan sama dengan equals, dan sederajat tidak tunggal. Dan bahwa cara program Anda akan memiliki perilaku yang Anda inginkan. Saya Doug Lloyd dan ini CS50.