ყველა უფლება. ახლა მოდით ვისაუბროთ რაიმე ნამდვილად სასარგებლო პროგრამირების პირობითი განცხადებები. ასე რომ, პირობითი გამონათქვამები მისცემს თქვენი პროგრამები მიიღოს გადაწყვეტილება და მიიღოს სხვადასხვა ჩანგლები საგზაო, რაღაც მე გააკეთა მინიშნება ცოტა ხნით ადრე, დამოკიდებულია ცვლადების, ან ეფუძნება რა მომხმარებლის საშუალებებით ზე პროგრამისტი, ბრძანებათა ზოლს, თუ თქვენ გაქვთ სწრაფი ან რამე მაგდაგვარს. C აქვს რამდენიმე სხვადასხვა გზა გამოხატოს პირობითი გამონათქვამები, რომელიც ჩვენ ასევე ზოგჯერ უწოდებენ პირობითი ფილიალი თქვენს პროგრამებში. და ზოგიერთი ვაპირებთ შევხედოთ საკმაოდ ნაცნობი თქვენ ნულიდან, ასე რომ, ჩვენ კი გაიყვანოს მათ გვერდით, უბრალოდ შეგიძლიათ, რომ ანალოგია თქვენი უფროსი. ასე რომ, if-- თუ არის საკმაოდ მარტივი პირობით. თუ გახსოვთ, ნაკაწრი უფლება აქ თქვენ შეიძლება შეავსოს, რომელიც hexagon ლურჯი გამოხატვის თუ მაუსის ქვემოთ ან თუ x ნაკლებია, ვიდრე 10, ან რამე მაგდაგვარს. და მაშინ, თუ x იყო არანაკლებ 10, ან თუ მაუსის იყო, ფაქტობრივად, down, ყველა კოდი შიგნით თავსატეხი ცალი შეასრულოს. ყველაფერი, რაც შეესაბამება შიგნით რომ C ფორმის. ასევე, გვაქვს თუ მარცხენა არსებობს. თუ ლოგიკური გამოხატვის, რომელიც მე უბრალოდ გამოყენებით როგორც შემცვლელი ერთი ლოგიკური გამოხატვის ადრე განიხილეს, ღია Curly გაუწიოს, მჭიდრო Curly გაუწიოს. ასე რომ, ვფიქრობ ღია curly გაუწიოს და დახურულ Curly გაუწიოს როგორც ერთგვარი ანალოგიური sandwich ეფექტი, თუ ბლოკი მარჯვენა ნულიდან. იმ შემთხვევაში, თუ ლოგიკური გამოხატვის იმ შემთხვევაში, თუ განცხადება არის ჭეშმარიტი, მაშინ ყველა ხაზი კოდი შორის curly აფრთხილებს შეასრულოს, რათა ზემოდან უნდა ბოლოში. იმ შემთხვევაში, თუ ლოგიკური გამოხატვის არის ყალბი, ჩვენ გამოგიგზავნით გაფართოებული მეტი ყველაფერი შორის Curly braces, რადგან ჩვენ მხოლოდ გსურთ დაცემას, რომ გზის გასაყარი იმ შემთხვევაში, თუ ლოგიკური გამოხატვის მართალია. ჩვენ შეგვიძლია ეს ერთი ნაბიჯია უფრო თუ სხვაგან. ასე რომ, ეს Scratch ბლოკი საკმაოდ მსგავსია ერთი ჩვენ ვნახეთ მეორე წინ, გარდა ეს ხდება ორი სხვადასხვა ბილიკები დაფუძნებული რა მოხდება. ასე რომ, თუ მაუსის ქვემოთ, ან, თუ x იყო არანაკლებ 10, ჩვენ ყველაფერს გავაკეთებთ, რომ ის შორის რომ პირველი ჩანგალი, რომ პირველი C., წინააღმდეგ შემთხვევაში, თუ მაუსი up, ან x არანაკლებ 10, ჩვენ ყველაფერს გავაკეთებთ, მეორე კომპლექტი. და რომ ანალოგიური რა ხედავთ აქ C. თუ ლოგიკური გამოხატვის, ამის გაკეთება პერსონალის შორის პირველი კომპლექტი curly აფრთხილებს. სხვაგან, ამის გაკეთება პერსონალის შორის მეორე კომპლექტი curly აფრთხილებს. ასე რომ, თუ ლოგიკური გამოხატვის მართალია, ჩვენ ამის გაკეთება, რასაც ის შორის პირველი კომპლექტი. იმ შემთხვევაში, თუ ლოგიკური გამოხატვის ცრუ, რომ გამოიწვიოს სხვა, და ჩვენ ყველაფერს გააკეთებს, რასაც ის მეორე კომპლექტი curly აფრთხილებს. ისევ და ისევ, ზემოდან, ყველა ხაზები შორის აფრთხილებს. In C, შესაძლებელია, რომ შევქმნათ შემთხვევაში, თუ-სხვაგან თუ-სხვაგან ჯაჭვი. ფაქტობრივად, თქვენ შეიძლება ჰქონდეს თუ-სხვაგან თუ-სხვაგან თუ-სხვაგან, თუ, და ასე შემდეგ და ასე შემდეგ და ასე შესახებ. In Scratch, ეს საჭირო მობუდარი ბლოკები. თქვენ დაამატოთ თუ-სხვაგან, და თქვენ უნდა კიდევ ერთი, შიგნით სხვა, და ასე შემდეგ, და მას სახის წყობილი და რთული. მაგრამ C, ჩვენ არ უნდა გავაკეთოთ, რომ. ჩვენ შეგვიძლია რეალურად მხოლოდ აქვს ეს იყოს ჯაჭვის მოსწონს ეს. ისევ და ისევ, როგორც თქვენ შეიძლება ველოდოთ, ყველა ამ ფილიალებში არის ურთიერთგამომრიცხავი. თქვენ შეგიძლიათ მხოლოდ ოდესმე წასვლა ქვემოთ ერთ-ერთ ფილიალში. თუ ეს მართლაც ასეა. წინააღმდეგ შემთხვევაში, თუ ეს მართლაც ასეა. წინააღმდეგ შემთხვევაში, თუ ეს მართლაც ასეა. წინააღმდეგ შემთხვევაში, ამის გაკეთება. ასე რომ ოთხივე ფილიალში ამ მაგალითად არის ურთიერთგამომრიცხავი. ეს არის, თუ-სხვაგან თუ-სხვაგან ჯაჭვი. არ არის გამორიცხული, თუმცა, და ზოგჯერ ძალიან სასარგებლო, შექმნა ჯაჭვის არა ურთიერთგამომრიცხავი ფილიალში. ამ მაგალითში, მხოლოდ მესამე და მეოთხე ფილიალი ურთიერთგამომრიცხავი. ეს შეიძლება იყოს, რომ თქვენ შეიძლება დააკმაყოფილებს პირველი პირობა, და თქვენ ვერ დააკმაყოფილა მეორე პირობა, და თქვენ ვერ დააკმაყოფილა მესამე condition-- ამ შემთხვევაში თქვენ დაცემას პირველი ფილიალი, მაშინ დაცემას მეორე ფილიალი, მაშინ ქვევით მესამე ფილიალი. ან იქნებ თქვენ დააკმაყოფილებს პირველი მდგომარეობა, და მეორე პირობა, მაგრამ თქვენ არ დააკმაყოფილა მესამე მდგომარეობა. ამ შემთხვევაში, თქვენ დაცემას პირველი ფილიალი და მეორე ფილიალი, და შემდეგ მეოთხე ფილიალი, ამის მიზეზი ის არის, რომ სხვა მხოლოდ ავალდებულებს, რომ უახლოეს თუ. ასე რომ, მიუხედავად იმისა, რომ იქ სხვაგან აქ, რომ სულაც არ ქმნის ორმხრივად ექსკლუზიური ჯაჭვის ყველაფერი. ეს მხოლოდ გამოხატვის არსებობს ლოგიკური გამოხატვის -3, რომ ის ურთიერთგამომრიცხავი ერთად სხვა. ასე რომ, შესაძლებელია, და ზოგჯერ საკმაოდ სასარგებლოა, როგორც ვთქვი, შექმნა ჯაჭვის არ არის ურთიერთგამომრიცხავი ფილიალში. მოდით შევხედოთ სხვადასხვა სახის პირობითი, რომელიც თქვენ არ მინახავს ადრე ნულიდან. არსებობს რაღაც მოუწოდა შეცვლა განცხადებაში. შეცვლა განცხადება სახის სისუფთავე, რადგან ეს პირობითი განცხადებაში, რომელიც საშუალებას აძლევს თქვენ უნდა მიუთითოთ მკაფიო შემთხვევაში, ნაცვლად დაყრდნობით ლოგიკური გამონათქვამები მიიღოს გადაწყვეტილება თქვენთვის. ასე მაგალითად, ვთქვათ, რომ მე მაქვს ეს პროგრამა, და მე გეკითხებით შესახებ უზრუნველყოს შეტანის ჩემთვის. ასე რომ, ვთქვა, int x = მიიღეთ Int (), და თუ თქვენ ჯერ არ იცნობენ, კიდევ int არის ფუნქცია, რომელიც არის ასევე შედის CS50 ბიბლიოთეკა, ასე რომ, თუ # მოიცავს cs50.h თქვენ უნდა ხელმისაწვდომობის ოჯახის Int () და ყველა მისი cousins-- GetFloat, GetString, და ასე შემდეგ. ძირითადად ერთი მიიღეთ ფუნქცია ყველა მონაცემთა ტიპი, რომელიც ჩვენ უკვე განვიხილეთ. ასე int x უდრის GetInt. ძირითადად, რა ხდება არის, მე ტერმინალში. მე გეკითხებით შესახებ აკრიფოთ ნომერი. და აქ მე გადართვის რასაც მე ვაკეთებ, იმის მიხედვით, რა მომხმარებლის აკრეფილი ბრძანებათა ზოლზე. ასე რომ, თუ მათ აკრეფილი ერთი, მე ამობეჭდოთ ერთი. და მერე შესვენება. თუ ისინი აკრიფოთ ორი, მე ამობეჭდოთ ორი. და მერე შესვენება. მნიშვნელოვანია, რომ შესვენება შორის თითოეულ შემთხვევაში რადგან, წინააღმდეგ შემთხვევაში თქვენ დაეცემა მეშვეობით. ასე რომ, თუ მე არ მაქვს არანაირი შესვენებები არსებობს, და პროფაილი აკრეფილი ერთი, რა მოხდებოდა, არის ის, ბეჭდვა ერთი, ორი, სამი, ბოდიში. სწორედ ასეთი უცნაური ქცევა, არა? თქვენ ალბათ ფიქრობთ ასე. მაგრამ არსებობს შემთხვევები, როდესაც ეს შეიძლება იყოს საკმაოდ სასარგებლო რამ. ასე რომ, აქ არის კიდევ ერთი მაგალითი იმისა, თუ შეცვლა განცხადება, სადაც მე გამომრჩეს შესვენებები. მაგრამ მე ამის შესახებ მიზნით. ასე რომ, რა ხდება აქ? ვფიქრობ, მეორე. თქვენ კი მინდა პაუზის ვიდეო. რა ხდება აქ, თუ მომხმარებლის ტიპის ოთხი? ასე რომ, მე ვთხოვე მომხმარებლის შეყვანის. და მათ ღირებულება 4. რა ხდება დაბეჭდილი, როცა ამის გაკეთება? წინა slide, იყო შესვენებები შორის ყველა შემთხვევაში. ასე რომ, ეს უბრალოდ ბეჭდვა ოთხი და შემდეგ შეწყდეს. მაგრამ ამ შემთხვევაში, ეს არ. რა მოხდება, არის თუ არა დაეცემა მეშვეობით თითოეულ შემთხვევაში. ასე რომ, ამ შემთხვევაში, მე, ჩემი შემთხვევები ისე, რომ იმ შემთხვევაში, თუ მომხმარებლის ტიპის 4, მე ბეჭდვა ოთხი, სამი, ორი, ერთი, აიღოს. და თუ მათ აკრეფილი 5, მე დაიწყება ხუთ საათზე და იგივე რამ. თუ ისინი აკრეფილი 1, მე მხოლოდ ამის ერთ-ერთი, აფეთქების off. ასე რომ, ამ შემთხვევაში, მე გამოყენებით შეცვლა სახის ჭკვიანურად ასე რომ მე ვაპირებ დაეცემა ყველა შემთხვევაში. მაგრამ ზოგადად თქვენ ალბათ კარგად მინდა შესვენება შორის ყველა მათგანი, თუ თქვენ გაქვთ სიტუაცია როგორც ეს ერთი, სადაც თქვენ სახის ოპერაციული იმისა, რომ თქვენ დაეცემა მეშვეობით შემთხვევაში, შესვენების გარეშე. ასე რომ, მეორე ძირითადი სახის პირობითი განცხადებები. ბოლო რაც არის?: ასე რომ მე აქვს ორი snippets C კოდი აქ. ერთ-ერთი მარცხენა და ერთი მარჯვენა. ერთი მარცხენა უნდა ალბათ, საკმაოდ ნაცნობი თქვენ. მაქვს Int x. და მე ალბათ უნდა ვთხოვე მომხმარებლის for-- ეს ალბათ უნდა Int x შეადგენს GetInt, ან რაღაც მსგავსი. და მაშინ მე გადაწყვეტილების მიღებისას. თუ რაიმე ლოგიკური გამოხატვის მართალია, მივანიჭოთ x ღირებულების 5. წინააღმდეგ შემთხვევაში, მივანიჭოთ x ღირებულება 6. რომ მარცხენა უნდა ალბათ საკმაოდ ნაცნობი ჩვენი დისკუსია იმ შემთხვევაში, თუ სხვა დანარჩენი მხოლოდ ერთი წუთით წინ. გსურთ თუ გაგიკვირდეთ იცოდეს რომ ხაზი მარჯვენა აკეთებს ზუსტად იგივე? ასე რომ, ეს ჰქვია?: ან ზოგჯერ მოუწოდა ternary ოპერატორს. და ეს არის საკმაოდ გრილი. ეს, როგორც წესი გამოიყენება, როგორც მიმზიდველი შეასრულა. მაგრამ ის, რაც საშუალებას გაძლევთ ამის გაკეთება არის სიმულაცია, თუ სხვა რამ მართლაც მცირე, ნამდვილად trivially მოკლე პირობითი ფილიალში. თქვენ საერთოდ არ გამოიყენებს?: თუ ჰქონდა ექვსი ხაზი კოდი, შორის თითოეული კომპლექტი curly აფრთხილებს. მაგრამ თუ თქვენ მხოლოდ მიღების სწრაფი გადაწყვეტილება, თუ ვაპირებთ გავაკეთოთ ერთი რამ ან სხვა, და ეს ძალიან მარტივია, ეს შეიძლება იყოს, თუ როგორ უნდა ამის გაკეთება?: ternary ოპერატორს. ასე int x უდრის გამოხატვის? საქმე მას შემდეგ, კითხვა ნიშნის რა x ღირებულების იქნება თუ გამოხატვის მართალია. საქმე იმაშია, მას შემდეგ, რაც მსხვილი ნაწლავის არის x ღირებულების იქნება თუ გამოხატვის იყო ყალბი. ასე რომ, მე საკუთარ თავს ვკითხე, არის გამოხატულება ჭეშმარიტი? თუ ეს არის, მივანიჭოთ x ღირებულების 5. თუ ეს არ არის, დაავალოს x ღირებულება 6. ისევ და ისევ, როგორც ვთქვი. როგორც წესი ეს არის მხოლოდ მიმზიდველი შეასრულა. და ზოგჯერ თუ გახდება ნამდვილად კომფორტულად, თქვენ ამის გაკეთება, რადგან იგი გამოიყურება სახის cool თქვენს პროგრამებში. საერთოდ მე წარდგენა თქვენ ახლა, ასე რომ თქვენ იცნობს თუ ხედავთ მას. მაგრამ რა თქმა უნდა ვიცი, რომ თქვენ არ აქვს დაწერა რომელიმე თქვენი კოდი. მაგრამ ეს არის ის, რომ იყოს იცნობს, იმიტომ, რომ თქვენ აუცილებლად ექმნებათ snippets კოდი აქ და იქ, სადაც ეს?: სინტაქსი, AKA ternary ოპერატორი, გამოიყენება. ასე სწრაფად დასკვნა რა პირობით არიან, და რა პარამეტრები ხელმისაწვდომია თქვენ C. თქვენ თუ და თუ-სხვაგან, და თუ სხვაგან, თუ et cetera. თქვენ შეგიძლიათ გამოიყენოთ ლოგიკური გამონათქვამები იმ გადაწყვეტილებას. ერთად გადახვიდეთ განცხადებები თქვენ იყენებთ დისკრეტული შემთხვევაში მიიღოს გადაწყვეტილება. თქვენ კონკრეტულად ვთქვა, თუ ეს ერთ-ერთი, ან თუ ეს ორი, ან, თუ ეს სამი, მე ამის გაკეთება რამ, ან ამ რამ, და ამ რამ. და?: შეიძლება იყოს გამოყენებული შეცვლის ძალიან მარტივია, თუ-სხვაგან ფილიალი, ან თუ-სხვაგან ჯაჭვების რათა თქვენი კოდი გამოიყურება პატარა ლამაზი. მე Doug Lloyd. და ეს არის CS50.