For и foreach цикъл за 15 минути
Vložit
- čas přidán 8. 09. 2024
- Видео за while loop - • While цикъл за 15 мину...
Видео за условни конструкции - • Условни конструкции за...
В програмирането често ни се налага да правим едно и също действие повече от веднъж. Още от сега е хубаво да знаем, че ако имаме повтарящ се код това не е много добре.
Ето един пример:
Трябва да изпринтираме числата от едно до 4 на конзолата:
Console.WriteLine(1);
Console.WriteLine(2);
Console.WriteLine(3);
Console.WriteLine(4);
Тук имаме числата от 1 до 4 и за тях имаме 4 реда с един и същи код и различни числа. Със сигурност тряба да има по-хитър и лесен начин да го постигнем.
Това може да стане с цикли, днес ще видим как става с for-loop.
Когато напишем for и два пъти натиснем таб бутона се разписва това :
for (int i = 0; i < length; i++) {
}
Интересно е да обърнем внимание какво се случва. Кода почва много да нни говори, а именно
Ако разгледаме само тази част int i = 0; и се абстрахираме от това, че тя е в цикъл виждаме една обикновена променлва, чиято стойност е нула.
Втората част много ни прилича на if проверка но само дето липсва условната конструкция:
i < length (където length) може да бъде някаква друга променлива.
И последната част е пост инкрементация на i променливата с 1 (i++)
и сега каква е ролята на тази ключова думичка for - ами да повтаря. Ето как можем да го изговорим. ЗА всяка итерация (завъртане) на цикъла, започвайки от i (int i =0;), което в случая е 0, до някаква стойност (length, която след малко ще променим), изпълнявай кода в скоупа на цикъла и увеличавай променливата i с 1;
Ако трябва да изпечатаме числата от едно до 4. Бихме казали - "За всяка итерация на for цикъла от 1 до 4 включително принтирай на конзолата съответната цифра и увеличавай i с 1"
Как го разписваме с код:
for (int i = 1; i < = 4; i++)
{
Console.WriteLine(i);
}
Как направихме и 4 включително? Добавихме едно равно за да бъде [1,4] а ако е без равно диапазона изглежда така - [1,3].
Можем да преброим и обратно, разбира се от 4 до 1 - Как?
for (int i = 4; i > = 1; i++)
{
Console.WriteLine(i);
}
Това в началото изглежда правилно, но всъщност е безкраен цикъл. Въпреки, че започнахме от 4 и обърнахме знака да стане по-голямо, забравихме, че сме казали на i да се увеличава с 1. Така i винаги расте и не може да стигне реално 1, защото расте от 4 нагоре. За това променяме да се декрементира с 1 и проработва:
for (int i = 4; i > = 1; i--)
{
Console.WriteLine(i);
}
Можем да печатаме и букви. Как може да стане това?
for (char letter = 'a'; letter < = 'z'; letter++)
{
Console.WriteLine(letter);
}
Много е важно да да се отбележи char letter = 'a'. Променихме го от интиджер на символен тип, защото сега искаме да се изпечатват символи. Какво ще стане, ако:
for (char letter = 'a'; letter < = 'z'; letter--)
{
Console.WriteLine(letter);
}
Това съвсем не са случайни символи. Те се взимат от така наречената ascii table - www.asciitable....
Ако се загледаме по-внимателно същност ще видим, че от малко а, което е 97 връща назад и последните символи не могат да се визуализират. В момента, в който стигбе до 0 спира и цикъла приключва
Доста добре обяснено!
Не се шегуваш с 15-те минути обаче, с това видео буквално цепиш секундата.
Pavel Bogdanov 😀😀 старая се да не минавам 15 със сигурност
много забавно "ентри" :D
Здравейте! Гледам видеото и имам въпрос относно това как работи for. Става въпрос за 4:25 мин. for (int i = 0; i
имаш кариера в IT специализацията