Софтуерно Инженерство
Loading...
+ Нов въпрос
AlexanderSD avatar AlexanderSD 0 Точки

За циклите

Здравейте извинявам се може въпроса ми да ви се строри глупав, но искам да попитам дали правилно съм разбрал това със циклите. Идеята ми е да си обясня всичко за да ми е ясно и разбираемо ,а не просто да го наизустявам това ми хрумна докато се упражнявах да правя това упражнение Числата от 1 до 20.

for (int i = 0; i < 20; i++)Console.WriteLine(i + 1);

i = 0 означава че минималната стойност е 0.

i < 20 означава че максималната стойност е 20, но ако след < сложа  и = тогава става от 1 до 21 което ме обърква тъй като съм задал максимума да е 20.

i++ това означава че се i се събира със i докато стигне до 20 поне така си мисля.

А за Console.WriteLine(i + 1); си мисля че задавам да се изписват числата като към всяко следващо се добавя 1, но като променя 1 на 2 става до 21 ако е 3 става 22 и.т.н

Бихте ли ми го обяснили малко по просто? Благодаря предварително.

Тагове:
0
C# OOP Basics
StefkaVasileva avatar StefkaVasileva 259 Точки
Best Answer

int i = 0 -задаваш начална стойност на променливата, като тази променлива живее само в тялото на цикъла.

i<20, не означава, че максималната стойност ще е 20, а 19, защото имаш знак за по-малко. Става 21 защото ти принтираш стойността на i + 1. При първото завъртане на цикъла  i е 0 ти принтираш 0(i) +1 => 1, слд това чрез i++, i вече е равна на 1, добавяш 1 и се получава 1+1 =>2. И това нещо се повтаея 20 пъти, защото броим от 0 до 19 (в случая 19 ти е максималната стойност)

i++, означава,че към i добавяш 1, а не отново i.

Console.WriteLine(i + 1) , принтираш на екрана стойността на i към която си добавил 1.

Дано да съм помогнала. 

0
22/01/2017 19:25:15
AlexanderSD avatar AlexanderSD 0 Точки

Много ти благодаря Стефче :)

0
ThePSXHive avatar ThePSXHive 436 Точки

i++ означава увеличаване на текущата стойност на i с единица, а не с i. Освен това, вече увеличаваш i веднъж в частта с икрементирането (i++), а след това и при извеждане на стойността при i + 1. С i просто се обозначава стойността от която започва увеличаването. Ето какво се случва при изпълнението на горния код: 

Итерация 1: Стойността на i е 0, условието i < 20 е изпълнено (защото 0 < 20), и след това стойността на i + 1 бива изведена

0 + 1 -> 1

След като първата итерация приключи, стойността на i се увеличава с 1 (i++ се изпълнява след всяко изпълнение на тялото на цикъла), и сега стойността на i е

0 + 1 -> 1

Аналогично и с останалите итерации. Когато извеждаш i + 1, ти не променяш стойността на i; просто извеждаш текущата му стойност, увеличена с единица. Промяната на стойността на i се осъществява след извеждането, в инкрементацията. Относно объркването при условие i <= 20 - последната стойност, която ще бъде присвоена на i в този случай, е 20, и в тялото на цикъла се отпечатва

20 + 1 -> 21

защото в този случай, ограничението (условието на цикъла) включва и стойността 20.

0
AlexanderSD avatar AlexanderSD 0 Точки

Благодаря

0