управленския цикъл в Делфи
В този пример, цикъл започва в което променливата и ще варира от -3 до 3. На всяка стъпка 10 е разделена на стойността на I и съхранява резултата променлива г.
При разделяне на използвания кръг функция, която кръга си тази стойност. Като начална стойност, ние го резултат на разделяне 10 променливата премине I, т.е. кръг (IO / I). Така, променливата г се записва закръглена до число резултат на разделяне.
Следващата стъпка е допълнение резултат на ListBox1 на, с едновременно превръщане на променливата Z в низа.
Нека да видим какво ще се случи, когато променливата и е равен на 0. В този случай, броят 10 ще бъде разделен на 0, което означава, че има грешка, защото не можете да се разделят с 0. Как тогава да се измъкнем от тази ситуация? Можете да на всеки етап от цикъла, за да проверите стойността на I, и ако тя е 0, като не извършва никакви действия. Два възможни решения са дадени в обявите:
процедура TForml.CalculateButt # 111; nКликнете върху (подателя: TObj др); Var
започнем защото: = - 3 3 да се направи
започне 11 Това е началото на оператора за ако аз<>0 след това
започнем // Това е началото на една декларация, ако
ListBoxi.Items.Add (40 / '+ IntToStr (I) +' = '+ IntToStr (с)); край; // тази цел, ако в края на оператора; // тази цел оператор за цел;
В този пример, при всеки етап проверява стойността на I, и ако не е 0, то е само в този случай, се извършват изчисленията.
Това е много просто решение за малки и прости програми. Но ако си цикъл е голям и не много екшън, решението ще бъде най-малко неудобно и може да се загуби "четливост" код. В най-лошия случай, няма да получите нищо. Тук идва на помощ продължи изявление.
процедура TFormi.CalculateButt # 111; nКликнете върху (подателя: TObj др); Var
I, R: цяло число; започнем защото: = - 3 3 да се направи
започне // Това е началото на оператора за ако 1 = 0, тогава
започнем /./ Това е началото на една декларация, ако
ListBoxi.Items.Add ( "не могат да се разделят от нула");
Продължи; край; // тази цел за оператора, ако
ListBoxi.Items.Add ('10 / '+ IntToStr (I) +' = 'VlntToStr (с)); приключи; // тази цел оператор за цел;
В този пример, ние проверяваме всяка стъпка от стойността на променливата аз. Ако тя е нула, съобщението в ListBox1 че не може да се раздели на нула, и изпълнява изявлението продължи. След като програмата отговаря на този оператор, той веднага прекъсва по-нататъшното изпълнение на цикъла и продължава към следващата стъпка. Това е същото, което се изпълни "Спри за продължаване на изпълнението на програмата,
увеличаване на стойността на променливата I и да започне цикъла със следващата стойност. "
След като програмата отговаря продължи оператор, тя скача до края на цикъла, където стойността на брояча се увеличава (в този случай, променливата и) и изпълнението продължава от следващата стъпка.
Фиг. Тя показва форма, с резултат от нашия пример.
Използване продължи с течение на доста удобно и безопасно, за разлика от примката на време, или се повтаря. до. Нека разгледаме следния пример:
докато аз<3 do begin if i=0 then continue;
Когато извършвате продължи изявление на време цикъл. удостовери, че промените контра. В този случай, е необходимо да се направят следните проверки:
ако аз = 0, тогава започва I: = I + L; продължи; приключи;
В този случай, преди стъпката на прекъсване на стойност цикъл на променливата I се увеличава с един, а след това на следващата стъпка няма да е нула.
Сега нека да се справят с изявление почивка. След като програмата отговаря на този оператор, цикълът се прекратява и изпълнението се предава на следващия отчет след изявлението на цикъла. Да вземем предишния пример и да го замени продължи да се прекъсне:
процедура TForml.CalculateButt # 111; nКликнете върху (подателя: TObj др); Var
I, R: цяло число; започнем защото: = - 3 3 да се направи
започне // Това е началото на оператора за ако 1 = 0, тогава
започнем // Това е началото, защото, ако ListBoxl.Items.Add оператор ( "Ха нула разделение не може '); прекъсване;
край; // тази цел за оператора, ако R: = кръг (10 / I);
ListBoxl.Iterns.Add ('10 / '+ IntToStr (I) +' = '+ IntToStr (с)); приключи; // тази цел за за ListBox1.Items.Add оператор ( "Изчисляване е над '); приключи;
В този случай, ако стойността на I е равна на нула, съобщението, че не може да се раздели на нула, и цикълът се прекъсва. След това, за контрол се предава на следващия отчет след цикъл.
Както можете да видите, след среща с нула в течение след това тя не прави нищо и просто да се прекъсне изявление приключи своята работа.
Помогнете на проекта! Кажи на приятел за този сайт:
Свързани статии