[MÜZİK OYUN] DAVID MALAN: Herkese merhaba. Bu CS50 en supersection olduğunu. Atanan Bölümler olmaz Bir hafta başlayacak. Ve bu yüzden bugün, ben buradayım Şarkı söylemeyi kes MARIA: Maria. DAVID MALAN: aslında --to sorunun bir göz atın birini, ders en set malzemenin ilk hafta Eğer CS50 IDE ile odaklı olsun, biraz Linux, bu işletim sisteminin IDE üzerinde çalışan, aynı zamanda geçiş bazı bakmak C lider için Sıfırdan soruna bir tane ayarlayın. Bu yüzden daha fazla uzatmadan, probleminde, bir set olmak için gidiyoruz CS50 IDE, kişiye hangi Bu web tabanlı programlama Biz sırayla kullanın çevre programları yazmak için. Çok bakmak için tasarlanmıştır oldu Tipik bir bilgisayar anımsatan Bir işletim sistemi çalıştıran Linux denilen sistem. Ama sözde bulut var, hangi sınıfta herkesi demektir aslında olabilir onun ya da onu kendi hesabına, hem de bunu kullanmak ve. Yani sizin muhtemelen kullanılan hiç önce ya da belki bir Linux ortamında Hatta bir komut satırı ortamı. Ve bir komut satırı Çevre farklıdır. Her metinsel bu. Tüm klavye komutlarını var. Ve hiçbir mousing, hiçbir simge değil, Hiçbir diyalog pencereleri, hiçbir menüler. Bu tamamen metin var. Yani ilk başta, bu tür Bir adım gibi hissediyor geriye gelişmişliği açısından. Ama bir sürü olmak biter daha güçlü, kesinlikle, Bir bilgisayar bilimcisi için sonuçta. Yani bir göz atalım. İşte ben, CS50.io de olduğum aracılığıyla Eğer CS50 IDE oturum açabilirsiniz. Ve çok Scratch gibi, var Bu ekranda üç temel alanları. Yani sol tarafta, biz hangi dosya tarayıcısı olacak. Ve bu klasör de var Şu anda boş top, Tüm kurtuldum beri benim supersection önce dosyaları. Ve bu nerede olacak bulunuyor Biz yazmak C dosyaları kaydetmek. Sağ üst köşesinde, biz bir yere nerede var Bizim tüm kodu yazılı almak için gidiyor. Ve gerçekten, ben bu artı tıklarsanız, bu Beni Yeni Dosya seçmesine izin gidiyor. Ve burada ben veya C kod yazmaya başlayabilirsiniz, Gerçekten, diğer dillerin herhangi bir sayı. Ve sonra nereye dibinde diyor jharvard @ ide50-- ve seninki olacak bir şeyler söylemek different-- Bu ne denirdi? Terminal penceresi. Evet. Yani terminal penceresi olan Sözde komut satırı etkileşim hangi aracılığıyla arabirimi Altta yatan işletim sistemi ile. Ve şimdi, biz gidiyoruz bu-- çok az faydalanmak Sadece bakmak, derlemek Gördüğümüz hata mesajları, ve bizim programları çalıştırmak için. Ama sonuçta, biz gidiyoruz yanı sıra, çok daha fazlasını yapmak için. Ve hatta yazılımı yükleyebilirsiniz ve Çalışma alanınızı yönetmek CS50 IDE içinde, hem de. Ama bu başka bir zaman daha. O yüzden go ahead ve yazalım çok basit bir program, sadece bir ısınma geçmesi belki de merhaba.c, Biz yazabilirsiniz basit bir program. Zaten yeni bir sekme açtık. Ben devam edeceğim ve Standart io.h dahil söylüyor Sonra ana (void) int. Ve sonra printf ("hello, world" ters eğik çizgi n, yakın alıntı, yakın parantez ve noktalı virgül. Pekala. Yani şimdi benim pencere isimsiz olduğunu fark. Yani çok hızlı gidiyorum Kaydet Dosya kadar gitmek. Ve o önemli Ben "merhaba". Bu yok diyoruz Yani çok yaygın bir hatadır, Özellikle problem biri set yanlışlıkla sadece aramak aşağıdadır Program, "su" ya da "açgözlü" ya da "Mario" "Kredi" veya benzeri ya da. Ama aslında yapmak istiyorum emin dosya uzantısı Bu tek yol olduğunu, çünkü derleyici ve ayrıca kod editörü sen biliyor Aslında C kod yazma. Bu yüzden bana go ahead ve Kaydet'i tıklatın edelim. Ve şimdi de ne CS50 IDE o da var olan bizim için yapmış sözdizimi her şeyi vurguladı. Bu yüzden her şey çok renkli hale getirdi. Ve bütün amacı Bu işlevsel değildir. O benim gözleri çizmek için sadece var kavramsal olarak farklı parçalar Bu programın. O yüzden go ahead ve bu derleme edelim. Ve ben bu derleyebilirsiniz şekillerde birkaç. Ve haftada tek yer, eski okul yolu yaptığımız en tam anlamıyla komutunun LINE "clang merhaba.c." Ve sonra Enter tuşuna basın. Ve hiçbir şey olmuyor Terminal penceresinde. Ama IDE değişikliği ne yaptı? Nerede, yine IDE sadece anlamına gelir Entegre geliştirme ortamı. Bu söylemenin süslü yolu Bu entegre kalkınma yazılım geliştirme için ortam. Yani UI ne değişti? Ne fark ettiniz O Maria, farklı? MARIA: Ben bir şey fark ettim IDE50 altında burada klasörü. DAVID MALAN: Evet. Yani burada, sadece Elimizde "hello.c dosyasını." Biz de hangi ", a.out" var Bir program için bir aptal isim tür. Ama gerçekten, bu varsayılan isim Eğer sadece kodunuzu derlemek programı ve derleyici söyleme çıktı ne dosyası. Yani bu çalıştırmak istiyorsanız, ben compiler-- söylememe gerek ya da daha doğrusu, ben gerek Çalışma alanını söyle ben denilen bir programı çalıştırmak istiyorum "a.out." Girin. Ve, merhaba "var dünya. "şimdi" ./ ". Aslında önemli. Hatta normalde biz sadece olsa komutların adlarını yazma, Eğer ettik bir program olduğunda yazılı, siz "./" demek istiyorsun açıkça Linux söyler çünkü adlı bir programı çalıştırmak istiyorum Bu öyle "a.out", nokta Şu anda ben bu dizinin anlamı olur yılında, "a.out, çalışma alanı olarak adlandırılır. Ben sadece söylediğim Çünkü eğer "a.out," Enter, Ben komuta a.out "değil alacağım Bulunan "computer-- çünkü Ben icat çünkü "a.out;" o computer-- ile gelmedi Nerede bunun için bakmak bilmiyor, Hatta doğru olsa Burnumun altında, tabiri caizse. TAMAM. Yani biz bu değişebilir "merhaba -o clang merhaba.c." olarak Ve ben Enter hit eğer, ne programı Bu benim için çıkış olacak? Dosyanın adı nedir? Evet, arkada. Doğru. "Merhaba." Yani "merhaba" olacak Programın adı kullandığımız için sözde Sadece bir komut satırı argümanı, davranışını değiştirmenin bir yolu aslında çıkışa derleyici belirli bir dosya adı. Ve gerçekten, ben Büyütmek eğer dışarı ve buraya bak, şimdi ben sadece "a.out" ve hem de "merhaba.c" ama aynı zamanda "merhaba". Yani şimdi ben bunu "./hello," Enter olabilir. Ve "merhaba dünya" var. Lastly-- ve Ancak Şimdi kongre olacak biz boyunca kullanmak yarıyıl, typically-- Ayrıca sadece söyleyebiliriz "Merhaba olun." Ve gerçekten, o kadar olduğunu söylüyor Bugüne kadar zaten varolduğundan. Beni go ahead ve birlikte kaldırmak edelim rm komutu, "a.out" hem - ve demek "normal dosya a.out kaldırılsın mı?" Sadece anlamına gelir, sen Emin bunu silmek istiyor? Ben evet demek için gidiyorum. Ve sonra kaldırmak için gidiyorum "Merhaba" değil "merhaba.c." Ben açıkça "evet" demek için gidiyorum ama "y", hem de yeterlidir. Ve şimdi eğer fark ben , ls-- ki, geri çağırma yazın tüm listeler list-- demektir Benim Klasördeki dosyaların. Ve gerçekten, ben Büyütmek eğer dışarı ve sol üst bakmak, ne olduğunu doğruladı Bu klasörde, hatta o kadar burada IDE50 olarak etiketlenmiş gerçi ve çalışma alanı, sadece "merhaba.c." var Yani şimdi buraya, ben ise Enter "Merhaba, yapmak" do, şimdi çok daha uzun bir komutu görüyoruz, ama gidiyor daha sofistike bir komut gelecek hafta içerisinde faydalı olması. Ve şimdi "./hello." Diyebilirsiniz Yani hızlı bir tur atalım Bazı diğer Linux komutları. O zaman neden bir adım yapmayız sırt ve aslında daha C bakmak Genellikle, Sıfırdan geçiş C ve daha sonra bir göz ile sonuçlandırmak İlk soruna C. set Pekala. Yani ileride sadece temiz gidiyorum Kontrol-L sadece benim çalışma alanı kadar temiz ekran tutmak için. Ama bu hiçbir fonksiyonel vardır Aksi takdirde etkilemektedir. Gördüğümüz hatırlayın Şimdi bir kaç komutlar. Bu yüzden hangi genellikle clang gördüm seni Artık elle yürütmek zorunda kalmazsınız. Biz bunun yerine make kullanacağız. Ama biz de bir gösteren, ls gördüm Benim dizindeki dosyaların listesi. Ve şimdi neden orada-- iki tane var olduğunu Şimdi dosyalar "merhaba" ve "merhaba.c." Neden bir yıldız ya da orada "merhaba" sonra yıldız? Bu esaslı, ne ifade vermedi Biz hafta biri gördüm ne? Ne düşünüyorsun? Yıldız ne anlama geliyor? MARIA: "merhaba" programı For--? DAVID MALAN: "Merhaba *". Evet. Ah evet? Ah, çalıştırılabilir. Doğru. Yani bunun anlamı "merhaba" yürütülebilir. Yani aslında, bu yüzden Ben "./hello." Yapabilirsiniz Pekala. Peki başka ne ben burada yapabilirim? Eh, ben can çıkıyor Ayrıca dizinleri oluşturun. Bu yüzden bana go ahead ve yapalım, Örneğin, bir "pset1" dizin. Ve sorun set şartname tam olarak bunu yapmak zorunda olacak, bu yüzden bugün hatırlamak zorunda değilsiniz. Ama "mkdir pset1" görünüyor Hiçbir etkiye sahip. Fakat yine de, hiçbir hata mesajı Genellikle iyi bir şeydir. Yani, ah şimdi-- şimdi "ls" yazarsanız Aradım bir yürütülebilir dosya var "Merhaba," C dosyası "hello.c dosyasını" denir. Ve sonra firar çizgi, böylece konuşmak, bu bir dizin olduğu anlamına gelir. Yani aslında, şimdi onu açmak istiyorum. Ve ben gibi üzerine çift tıklayın yok Bir GUI, grafiksel bir ortamda. Bunun yerine "cd pset1." Demek Girin. Ilginç bir şey var gibi görünüyor Benim küçük istemi dışında oldu burada-- bu hatırlatan Linux'un yoludur Bana nerede olduğumu, bu yüzden hangi klasörün açıktır. Sadece açıkça bana söylüyor grafiksel olarak karşı çıktı. Ben yazarsanız Ve "ls," neden başka görüyorum Sizce, hemen istemi, Ben pset1 içeriğini listelemek zaman? MARIA: Muhtemelen değil Orada bir şey var. DAVID MALAN: Evet. Öyleyse biz tabii ki değil var Orada bir şey yarattı Ben sadece dizin yarattı çünkü. Şimdi, ben bir file-- yaratmak istedim örnek, ben yeni bir dosya oluşturabilirsiniz. Ve sonra ben gidebilirim Kaydet ve olarak kaydetmek, gibi "mario.c" Eğer yapıyoruz pset biri standart edition. Ve sonra, herhangi bir Mac veya PC gibi, sadece Kaydet klasör "pset1 seçin. Ve şimdi dosya boş. Ama bir saniye için yine yakınlaştırmak verelim. Burada ls yapalım. Şimdi "mario.c" bölümüne bakınız. Yani birkaç diğer komutları var ki seferinde-- üzerinde akılda tutmakta fayda vardır açık ya da Kontrol-L Birkaç gün önce ne isabet olmuş; mkdir gördüğümüz; rm biz hangi yanı sıra, gördüm kaldırma veya bir dosyayı silmek için. Eğer bakarsanız also-- edebilirsiniz sakının ve çevrimiçi öğreticiler, sen -rf rm edeceğiz diyerek çok yaygın bir şekilde İçinde şeyler vardır bir klasörü silin. Sadece süper dikkatli, süper olacak. -rf recursively demektir ne olursa olsun silmek Silmek için çalışıyoruz ve zorla silin. Bir klasör ile eğer araçları Yani özyinelemeli bir klasör ile bir klasör bir klasör, hepsini silin. Ve zorla bile yapmak anlamına gelir evet bana soracak ya da hayır, eminim? Yani süper tehlikeli bir yoldur hızla sürü silme. Ama beware-- çok sık bir cesur yapar Öğrenci yanlışlıkla, diyelim ki, pset silmek Örneğin, bir,. MARIA: Ve onlar eğer sadece -r yapmak, onlar gidiyoruz her dosya hakkında onlara sormak. DAVID MALAN: is orta can sıkıcı. MARIA: Evet. DAVID MALAN: Yani bu yüzden Bize o kadar çok, kendini dahil, rf kullanma alışkanlığı duyuyorum. Ama tehlikeli. Yani alıcı sakının. Ve sonra mv tür bir İlginçtir atadı. Yani bu hareket komutu, hangi biraz garip hissediyor Eğer gerçekten bunu kullanabilirsiniz, çünkü başka bir yerden dosyaları taşıyın. Örneğin, ben berbat olduğunu varsayalım. Ben yarattığını varsayalım pset için yeni bir dosya. Ve ben sakladım "greedy.c." Ama yanlışlıkla ben varsayalım kaydetmek IDE50-- benim çalışma alanında kendisinde böylece olup pset1 bölgesindeki. Sen sol üst kısmında kadar görebilirsiniz. "Greedy.c." Orada Ve birkaç çözüm var. Yani biri kullanabilir miyim Süper kullanıcı dostu bir şekilde sadece sürükleyip bırakarak. Ve aslında olur Bu sorunu gidermek. Ama bugün, biz bakmak için çalışıyoruz daha gizemli ama güçlü yolları Bu yapıyorum. Bu yüzden bana pset1 içinde "ls" atalım. Ve ben sadece "mario.c." Bkz Beni go ahead ve yapalım "cd ..". Yani CD tekrar değişiklik dizin. ".." Olsa ne demek? Son kez dedim "cd pset1 "pset1 gitmek. Ben "cd .." derken Peki, ben ne yapıyorum? Geriye doğru. Evet. Yani sözde ebeveyne gidiyor. Gibi, bir seviye yukarı git Bir klasörün dışına çıkmadan. Yani girin. Ve gerçekten de yaptığına bak. Bunun yerine sadece çalışma alanına bana taşındı bir çalışma alanında olduğu pset1 içine. Ve şimdi "ls" yazarsanız, şeyler bir sürü var. In "greedy.c" var. Yani şimdi beni tam anlamıyla için mv kullanmasına izin pset1 içine "greedy.c" hareket ettirin. Ve böylece Linux'un bir sürü komutları aynen böyle çalışır. Onlar hiçbir argüman alabilir ya da birini almak argüman ya da iki komut satırı almak argümanlar ve benzeri. Bu durumda, var: Kelimenin tam anlamıyla ne yapıyor o succinctly-- olsa diyor pset1 içine greedy.c hareket eder. Girin. Hiçbir şey gibi görünüyor. Ben yine ls Ama eğer, açgözlü gitti. Ben "cd pset1" yaparsanız, o zaman girin ve ls yine şimdi doğru yerde var. Bir kenara, için sanki Bazı özellikle nedenden Eğer aralıklı varsa Ağ bağlantısı ya da çevrede yürüyorsun dizüstü kapaklı kampüs kapalı ve daha sonra o kadar açık Tekrar ve çalışma alanı biraz senkron, hiçbir büyük anlaşma dışında görünüyor. Sadece tarayıcınızı yeniden Pencere ve olması gerektiği yeniden senkronizasyonu ve böylece sol-taraf Dosya tarayıcısı tam olarak görünüyor terminal penceresinde gibi. Endişe etmeyin. Şüpheye düşerseniz, bu yüzden, sayfayı yeniden Uzun zaten dosyaları kaydettiğiniz olarak. TAMAM. Yani mv ayrıca dosyaları yeniden adlandırmak için kullanılır. Ve en az bir göz atalım Burada bu son komutu. Böylece suppose-- ve bu Süper ortak da erken. Bazı öğrenciler bazen bir dosya oluşturmak denilen en bir tane ne say-- izin mi verdin? "WATER.C." Gibi Yani sadece için, bağırma olacak Tüm kapaklar hiçbir sebep. Ancak bu değildir dosyası için doğru isim bizim sorunumuz set sadece çünkü eğer şartname sana söylemedim Tüm kapaklar dosyası olarak kaydetmek için "WATER.C." Bunun yerine, biz bekliyoruz küçük harflerle "water.c". Ve, aslında, bu sorunlu çünkü check50, Gittiğin bir program problem karşılamak için otomatik test bir set kodunuzu doğruluğu sen bağırma olacak eğer yapamaz Bütün küçük harflerle "water.c" bulmak. Yani bu düzeltmek gerekir. Yani birçok farklı yolu İlki bunu Kontrol tıklayın veya sağ tıklama olacaktır Dosya adı sadece Yeniden Adlandır değiştirin ve. Bunu yapmak için tamamen iyi. Fakat yine de, bugün, haydi biraz meraklısı yok. En değiştirmek için mv kullanın Let Için "WATER.C" "water.c." Yani aynı zamanda ilk argümanını kullanabilirsiniz İkinci argüman olarak yeniden adlandırın için İkinci argüman değil, eğer Aslında, bir klasör veya dizin adı. Pekala. Ve son olarak, küçük bir trick-- yüzden ben de varım Şu anda benim çalışma dizini. Ben pset biri içine almak istiyorsanız, Ben kesinlikle "cd pset1." Yazabilirsiniz Ama "pset1" yazmanız çok sıkıcı olduğunu veya dosya adları veya dizin adları daha uzun Hala. Bu yüzden çok sık Linux ne Eğer "PSE" yazmaya başlayın olduğunu yapabilirim ve sadece bıkmak Tab vurdu ve izin Sizin için bilgisayar rakam dışarı. Bu alışkanlık haline almak için Süper yararlı. Eğer varsa sadece yakalamak olduğunu Başlangıç ​​birden fazla dosya veya klasörleri harfi "p" ile ya da "ps" aklınıza gelebilecek önce birkaç daha yazın bilgisayar ne yapacağını bilir. MARIA: Biz kısayolları gibi. DAVID MALAN: Bu irade Seni çok zaman kazandırabilir. Ve ayrıca, biz, derste söylediği gibi yukarı ve aşağı, tarihin kadar ilerleyebilirsiniz, son çalıştırılan bulmak için komutlar yanı sıra. Pekala. Yani şimdi, en dikkatimizi geri dönelim Basit bir program, merhaba dünya. Yani biz tam bu derledik. Ve şimdi neden yapmayız veri türleri bir göz ve daha sonra bazı geçiş C Kazı blok tekabül MARIA: Korku. Yani şimdi başladım o C programları yazarken, biz konuşmaya başlamak için gidiyoruz veri tipleri ve değişkenler hakkında. Bu yüzden bazı veri türleri olduğunu sen şimdi başlıyor bilmek isteyeyim olanlardır mavi vurgulanır. Bu yüzden, ilk int var Hangi tamsayı anlamına gelir. Ve bu senin gibi tamsayılar tutar sahip olabilir, böylece guessed-- 1, 2, 3, ve diğer tamsayı aklınıza gelebilecek söyledi. DAVID MALAN: Ve ayrıca negatif. MARIA: Ve ayrıca negatif olanlar, evet. Ve 0. Sonra yüzer, sahip olduğu kayan nokta sayıları vardır. Böylece tüm gerçek sayılar var Bu ondalık noktaları var. Böylece 5,0, 5,2, ve hatta daha da noktadan sonraki basamak, yanı sıra, aynı zamanda negatif olanlar. Sonra bir karakter olan karakter var. Yani konuştuğumuz düşünüyorum Bu derste bugün. Ama biz, A example-- için, mektuplar var Char olarak saklanabilir B, C-. Ama sonra çok daha fazla sembol var bu char olarak saklanabilir. Ve bu ASCII olarak depolanır. Sonra bool, bu Boolean bulunmaktadır. Ve bu true değerlendirmek veya Yanlış veya sırasıyla 1 ve 0,. DAVID MALAN: Ve hatırlama o bool CS50 kütüphanesinden gelir. Yani yerleşik değil C ama süper kullanışlı doğru ve yanlış kavramı var. Ve hatta sana rağmen Eğlenceli gerçeği bence-- olabilir. Bir bool teknik kaç bit ihtiyacı Gerçekten, yanlış karşısında doğru temsil etmek? Kaç bit sizce Eğer maksimum, gerekir? Evet, sadece bir. Yani o C çıkıyor Size sadece bir bit veremem. Ölçü küçük birimi alabilirsiniz sekiz olduğunu. Bu yüzden onlar sen biraz savurgan Bütün bir bayt veya sekiz bit kullanarak, Doğru veya Yanlış temsil etmek. Ama bu bu sadece yolu CS50 kütüphanesi tarafından C uyguladı. MARIA: Biz konum Ve sonra olanlar olarak yaygın hakkında konuşmak için gitmiyorum sağ çift şimdi--, Bu büyük yüzen için. Uzun uzun ve kısa tamsayılar için de vardır. DAVID MALAN: Gerçekten. Pset biri hacker baskısında, biz aslında uzun uzun kullanın. Ama standart edition için, gerekli olmamalıdır. MARIA: Serin. TAMAM. Yani olması gerektiği operators-- Bunların çoğu muhtemelen tanıdık. Toplama +; çıkarma, -. Çarpma için, * var. Bu yüzden değil X genellikle kullandığınız. Bölümü, biz ters eğik çizgi var. Ve modulo son operatörü olduğunu şu anda hakkında konuşmak için gidiyoruz. Bu bize sağlayan bir operatör var bir bölümü kalanını alır. Biz% 4 varsa 2, 4 bölünmüş Yani 2 ile 0 bir geri kalan kısmı ile 2 'dir. Yani% 4 2 0 olduğunu. 4,% 3 1. Tahmin olabilirdi% 4 5 4 olduğunu. Ve tüm bunları kullanırken hatırlıyorum operatörler PEMDAS kurallarını kullanın. DAVID MALAN: Yani, açık olmak eğer 4,% 2 yapmak, tam olarak neden bu 0 mı? Maria: 4 için bölünmesi 2 0 bir geri kalan kısmı ile 2 'dir. Yani modulo bize kadar o kalanı verir bölünme sonucu karşı. DAVID MALAN: Ve gerçekten, Bu yararlı ne bulacaksınız bazı sorunlar olduğu Bu, mutlaka biri değil Eğer yapmak istiyorsanız kendinizi kısıtlayan etkisi bir sayı aralığı şey aracılığıyla 0 gibi, etrafında sarmak için modulo kullanabilirsiniz Daha önce 2 milyar gibi daha ya da 4 milyar değer olduğunu Biz derste konuştuk. MARIA: Evet. Ve hatta belki "açgözlü" olarak. DAVID MALAN: Evet, içinde Sorun, hem de bir set. MARIA: Evet, güzel. DAVID MALAN: İyi ipucu. MARIA: Özür dilerim. Boolean yani expressions-- Boole operatörleri için, Biz ilgili tüm konuşmak için gidiyoruz Bu Bunun burada gördüğünüz. Yani şu anda, biz iki tane var Eşit işaretler eşittir için sıraladı. Yani bu karşılaştırma için vardır. Şimdiye kadar, sadece gördüğüm tek eşittir işareti. Biz atamak o zaman Bir değişkene bir değer. O halde, biz int n = 5 gördüm eğer Biz değişken n 5 atadık. Ama biz için == kullanmak istiyorsanız Karşılaştırma, biz eğer n == 5 kontrol edebilirsiniz. Ve n == 5 ise, o doğru. Yani Boole işleçleri temelde bize izin, Boole değerlendirmek Doğru veya yanlış olarak ifadeler. Yani biz var equals-- değil Ünlem işareti ve eşittir. Bu yüzden de n ise kontrol edebilir yapar eşit değildir 5-- yüzden n! = 5. Daha az veya eşit, daha az, daha büyük veya eşit, daha büyük, ve sonra biz mantıklı var AND ve mantıksal VEYA. Ve bu bize değerlendirmek için izin birlikte birden fazla Boole ifadeleri temelde bir araya gelmek olarak bir bütün Boole ifadesi. Biz numarasını bulmak istiyorsanız Yani, demek bu daha büyük 5 15'den az olduğu Aynı zamanda, biz kullanmak n olup olmadığını görmek için mantıksal AND işleci daha büyük 5 && az 15 n. DAVID MALAN: Ve burada, çok gerçekten kolay erken yanlışlıkla Sadece tek bir işareti kullanın ya da tek bir dikey çubuk. Ve umarım derleyici olacak bağırma aslında çünkü onlar çok farklı bir anlamı vardır. Bu meraklı için, onlar Bitsel işlemleri için kullanılan, Bireysel bit işletim. Ama burada onları çifti istiyorsun. Ve süper önemli olduğunu İlki, eşittir işareti, Eşitlik operatörü olarak hangi atama operatörü karşı. MARIA: Ve dikey çubuk olduğunu Sil ve İade arasında yer. DAVID MALAN: Evet. Tipik bir Amerikan klavyesinde. MARIA: Evet. Yani sağ içine atlamak izin koşullu ifadeler. Scratch, sen ettik Zaten görüldüğü gibi, muhtemelen, eğer size izin ifadeleri bir şey doğruysa o zaman, kontrol başka bir şey yapmak. Yani istemiş olabilir senin sprite olup olmadığını kontrol etmek başka bir hareketli grafik dokunmadan veya ekranın sınır. Ve sonra istedik olabilir oyunu bitirmek ya da başka bir şey yapmak. Bunun için sözdizimi Yani "if (koşul)" dir. Yani eğer sizin sprite şey dokunuyor, Daha sonra küme parantezi içinde olduğunu yoktur. Sonra if-else ifadeleri var. Başka bize bir şeyler yapmanızı sağlar durum eğer biz Başlangıçta kontrol doğru değildir. Sprite dokunuyor Yani eğer Sınır başka, bunu başka bir şey yapmak. Yani, aksi takdirde başka bir şey yapmak. Sonra bunun için kısa bir örnek var. Yani eğer (military_time <12), biz printf istiyorum "Günaydın!" Else biz gidiyoruz printf "İyi akşamlar!" Temel bir örnek. DAVID MALAN: İyi. MARIA: Serin. Yani şimdi biz switch ifadeleri var. Genel can ifadeleri Anahtarı Bize aynı şey bir sürü yapmak için izin biz sadece konuştuk ifadeleri ise yaklaşık. Örneğin, şu anda elimizde switch ifadesinin genel formu bu bizi almasına izin veriyor Değişken olarak adlandırılan N ve bir sürü karşılaştırın farklı değerler, hangi burada CONSTANT1, CONSTANT2 çağrıda bulundular. Biz çok daha fazla olabilir. Ve bu davaları denir. Biz bir geçiş var ise statement-- ve bu eserler Sadece biz bir var integers-- için n var bu durumda değişken. N değişkeni ise , biz CONSTANT1 eşit kod bazı pasajı yürütecek ya da biz yapmak istediğim bir şey. Ve sonra kıracak. Yani sonu anlamına gelir switch deyimi eğer yürütme durur n, CONSTANT1 eşittir ve sonra programı devam edecek. Bu dışarı çıkar deyimi geçiş ve olacak Başka bir şey yapmaya devam. Bununla birlikte, n eşit değilse CONSTANT2 için CONSTANT1, o durumda kontrol edilecektir. Yani n, diğer CONSTANT2 eşitse kod pasajı idam edilecek. Ve o zaman kırarım bunun eşit ise. Ve sonra biz also-- değil olabilir mutlaka, varsayılan bir davayı rağmen-- n eşit yapmazsa hangi olur Eğer listelenen durumlardan herhangi. Ve varsayılan durumda, biz de mutlaka bir molaya ihtiyacım yok switch deyimi bilecek, çünkü varsayılan sonra sona gerektiğini dava eğer durum buysa. DAVID MALAN: Ama üslup, biz her zaman orada koydum. MARIA: Evet. DAVID MALAN: Evet. Yani özellikle başlarken Özellikle kişiler arasında daha eğer rahat, ben şahsen olur sadece IFS sopa ile tavsiye ve IFS-birinin ve if-else-if-birinin ve benzeri halinde onlar biraz çünkü daha basit. Bu güzel bir optimizasyon, ya hatta bazen estetik onu Kod daha okunabilir hale getirir. Ve aslında, muhtemelen orta dönem bir sorun görürsünüz sadece daha iyi görünüyor nerede set ve daha kolay insanlar için okuma Bir anahtar deyimini kullanarak. Ama dert etmeyin çok erken bu tutunarak. MARIA: Evet. Eğer ifadeleri eğer bir sürü varsa, sadece çok okunabilir olmayabilir. Çok hızlı olmayabilir için bunun üzerinden gitmek. Yani ifadeleri edebilirsiniz anahtarı çok yararlı kullanımları da bu. Ve aynı zamanda, unutma-- değil yapmayın Orada sonları koymak unutma. DAVID MALAN: Bu hatırlamıyorum. MARIA: o zaman düşebilirsin Çünkü aracılığıyla başka bir davadan. Yani bu durumda CONSTANT1 diyelim o bir break deyimi yoktu. Sonra biz aracılığıyla düşebilirsin iç kutunun CONSTANT2. Ve biz eğer bunu yapmak istemiyorum biz zaten dava CONSTANT1 ulaştınız ve n eşittir var. Bu nedenle, örneğin, bir değişken varsa Bir sınıf numarası içeren n, ve ne olduğunu görmek istiyorum n 50 eşitse, sınıf, bu-- Biz CS50 ise "yazdırmak için gidiyoruz Bilgisayar Bilimi I. Giriş " Sonra kırmak için gidiyoruz. Ve bu kadar. Ancak, n eşittir 51, biz gidiyoruz CS51 Giriş olduğunu "yazdırmak için Bilgisayar Bilimi II. " Sonra, yine biz kırmaya gidiyoruz. Ancak, eğer o zaman koymak 124, 61, herhangi bir Aklınıza belki başka bir numara, veya program gitmiyor tanımasını. Yani Üzgünüm, ben "demek oluyor o sınıfın aşina olmayan. " Ve kırmaya gidiyor. DAVID MALAN: Yani gerçekten görebilirsiniz , eğer burada başka başka fikir, eğer. Bunun için sadece farklı sözdizimi aynı fikri ifade. MARIA: Kesinlikle. Şimdi bizim üçlü operatörler var. Yani üçlü operatörler var Üç, bir durumun parts-- eğer yapacak bir şey Bu koşul, doğrudur ve sonra bir şeyler yapmak eğer bu koşul yanlıştır. Yani, temelde, bkz burada sözdizimi. Biz soru işareti var ve Sonra Şeyin ne bu diyorsun? DAVID MALAN: kolon. MARIA: Kolon. Teşekkür ederim. Üzgünüm. Yani bizim örneğe bakalım Biz bu-- mantıklı olmadığını görmek class_num == 50. Yani burada biz == bizim Boolean operatörü bakın Bu değişken class_num karşılaştırır 50. Yani class_num depolar bir tamsayı. Ve bu tamsayı ise o zaman sen, 50 eşittir saklamak için gidiyoruz "David Malan" Dize profesörü içinde. Sınıf numarası değilse "not David Malan", 50 eşit Profesör olacak. DAVID MALAN: Teşekkür ederim. Ve böylece bu eşdeğer gibi görünüyor İlk bakışta, ne söyleyebilirim? MARIA: Benim için öyle görünüyor gibi if-else deyimleri. DAVID MALAN: Evet. Ve aslında, bu tür güzel bir tek liner, yani uygulanması için, konuşmak için tam mantığı if-else ancak tek bir adımda her şeyi yapıyor. MARIA: Kesinlikle. Evet. Yani if-else ifadeleri olabilir çok yer kaplar. Onlar için çok uzun olabilir Bu gibi basit bir şey. Yani bu çok olabilir özlü ve çok güzel. Yani şimdi baktığımız içine gidiyoruz tekrar tekrar bir şey yürütme, böylece kontrol birden çok kez şart ve sonra bir şeyler yapmak için devam Bu koşul doğru ise. Yani bu bize getiriyor güzel ise ilmeklere. Sol tarafta, biz İlk while döngüsü. Şey doğrudur süre Yani, tekrar tekrar bir şeyler yapmak. Yani fark emin olun bizim durum burada üst kısmında doğrulanmıştır. Dediğimiz bizim ikinci loop-- oysa do-while bir şey yapmak loop-- olduğunu, o zaman biz bir durumun olup olmadığını kontrol edin. Ve şartıyla eğer Gerçek olmaya devam ediyor Biz geri dönün ve tekrar şeyi yaparlar. Yani temel fark nerede koşul kontrol edilir. Ve kod asla olabilir durum değilse idam while döngüsünde ile gerçek. Do-süre ile Oysa Döngü, biz kodu var O zaman en az bir kez yürütülür. Sonra durumu ise Gerçek olmaya devam ediyor Biz geri gitmek ve içeride tekrar yineleme yapabilirsiniz. Peki neden biz kullanmak istiyorum sizce a while döngüsünde üzerinde döngü do-while? Sağ. Biz istemi istiyorsanız Yani girdi çeşit için kullanıcı, Biz onlara sormak istiyorsanız Onların adını girmek için, en az bir kez onlara sormak istiyorum. Ve onlar girin yoksa Bu isim, biz değiliz Onları tekrar soracağım biz zaten bunu biliyorum çünkü. Ama girmezseniz ad, ya da eğer olan bir şey girin Açıkçası bir isim, biz hala devam etmek istiyor Onların adını onlara soruyorum. DAVID MALAN: Ve derste biz vardı olsun pozitif int ile böyle hiçbir şey yok örnek, Hatta değil çünkü ilk başta kontrol bir int kazanılmış. Yani biz bu-- yapmak istiyorum user-- bir int almak o zaman belki, kontrol, Tekrar ve tekrar ve tekrar. MARIA: Kesinlikle. Loops-- Tamam. Döngüler izin verebilirsiniz bizim için neredeyse yapmak aynı şey de. Aslında aynı şey. Yani hiçbir şey var ki Eğer döngüler için yapabileceğiniz Eğer mümkün olmaz süre döngüler ile yapmak. Ama döngüler için biraz görünebilir biraz daha karmaşık sözdizimsel Onlar çünkü Üç parça içinde ne hemen önce oldu süre döngüler ile durum. Yani ilk bölümü bu deniz, sol-En, biz "int Cüceler = 0" Yani bu nerede biz Bizim değişkeni başlatmak. Sonra bir noktalı virgül var ve "Cüceler 7. <" Yani bu nerede olduğunu durum aslında. Yani biz olurdu ne süre sadece koymak loop-- "Cüceler 7.