Комментарии. До этого момента наши тестовые программки были просты до идиотизма

До этого момента наши тестовые программки были просты до идиотизма. Теперь они начнут усложняться. Настоящие программы бывают сложными. Очень сложным. На самом деле самая трудная часть работы программиста - это не написать новую программу, а понять уже написанную, найти в ней ошибки, исправить их или что-то поменять, не сделав новых (!). Понимание программы очень облегчают комментарии - заметки прямо в коде, которые игнорирует компьютер. Они только для высшего разума - людей. Кроме того их часто используют для того, чтобы временно отключить часть программы не удаляя уже написанного кода - так и говорят, закомментировать.

bool boolVar1 = true;

/*

многострочный коментарий

сейчас используется редко из-за встроенных функций Visual Studio

*/

bool boolVar2 = true;

//однострочный комментарий

На практике многострочные комментарии в Visual Studio чаще всего ставятся с использованием специальной функции - у нее есть и кнопка и собственная горячая клавиша

Получаем вот такой код, который можно раскомментировать с помощью соседней кнопки

/if (boolVar1 && boolVar2)

//{

// System.Console.WriteLine("Вернуло true логическое И для true и true");

//}

//if (boolVar1 || boolVar2)

//{

// System.Console.WriteLine("Вернуло true логическое ИЛИ для true и true");

//}

Циклы

Наша программа уже может что-то решать... но как-то убого она это делает, каждый чих надо прописывать вручную. А ведь настоящие роботы славятся своей способностью повторять любые действия неограниченное количество раз не зная усталости и сомнений! Делают они это с помощью циклов - специальных конструкций для программирования повторяющихся действий.

Самый простой цикл просто заставляет компьютер повторять какое-то действие, пока не выполнится какое-то логическое (см. выше!) условие. В C# такой цикл называется while

//считаем до семи

int counter = 1;

while (counter <= 7)

{

System.Console.WriteLine("Значение счетчика: " + counter);

counter++;

}

System.Console.ReadLine();

Обратите внимание: если условие не выполнится никогда, компьютер будет выполнять заданное действие вечно - это называется зацикливанием.

Можете проверить это утверждение закомментировав строку counter++; - программа будет работать бесконечно, так как counter никогда не будет равен 7. Придется прекратить ее работу вручную, закрыв окно.

Делать что-то заданное количество раз приходится так часто, что для этого случая придумали специальный цикл, ведь лень - это двигатель прогресса. Я имею в виду цикл for.

С его помощью даже самый простой цикл из предыдущего примера станет еще проще

//считаем до семи

for (int counter = 1; counter <= 7; counter++)

{

System.Console.WriteLine("Значение счетчика: " + counter);

}

System.Console.ReadLine();

В знаменитой статье Почему программисты не умеют программировать автор приводит следующие данные - большинство выпускников программистских вузов не могут написать очень простую программу - которая выведет на на экран числа от 1 до 100, вместо кратных 3 выведет Fizz, вместо кратных 5 выведет Buzz, вместо кратных и трем и пяти FizzBuzz (это в Америке такая обучающая игра для детей). На самом деле единственная сложность в такой задаче - вспомнить школьное определение кратности. Число кратно 3 если остаток от целочисленного (без учета дробной части) деления этого числа на 3 равен нулю. Осталось выяснить, как вычислить остаток от целочисленного деления. Это делает оператор %.

В итоге получаем совсем простую программу, то ли в Америке так плохо учат, то ли автор статьи преувеличивает, то ли большинству программистов никогда не понадобилось знание того, что такое остаток от целочисленного деления.

for (int counter = 1; counter <= 100; counter++)

{

int reminder3 = counter % 3;

int reminder5 = counter % 5;

if (reminder3 == 0 && reminder5 == 0)

{

System.Console.WriteLine("FizzBuzz");

}

else if (reminder3 == 0)

{

System.Console.WriteLine("Fizz");

}

else if (reminder5 == 0)

{

System.Console.WriteLine("Buzz");

}

else

{

System.Console.WriteLine(counter);

}

}

System.Console.ReadLine();

Опытный программист может заметить, что одно из условий if лишнее и код можно сделать более коротким с использованием простого трюка - если число делится и на 3 и на 5, то можно просто выводить сначала Fizz потом Buzz, автоматически склеивая их в одну строку и не проверяя отдельно на предмет кратности и 3 и 5. Так как все в этом мире имеет свою цену, то более короткий код также будет менее понятным. В данном примере различие невелико, но в промышленном программировании со сложными и большими программами в большинстве случаев важна именно понятность кода.

for (int counter = 1; counter <= 100; counter++)

{

int reminder3 = counter % 3;

int reminder5 = counter % 5;

string result = "";

if (reminder3 == 0)

{

result += "Fizz";

}

if (reminder5 == 0)

{

result += "Buzz";

}

if (reminder3!= 0 && reminder5!= 0)

{

result = counter.ToString();

}

System.Console.WriteLine(result);

}

System.Console.ReadLine();


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: