Поиск по сайту:

Учебник по командной строке C, часть 6. Отступы в коде, операторы увеличения/уменьшения, циклы do-while и for и многое другое


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

Итак, давайте начнем.

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

#include <stdio.h>

int main (void)
{
int c =0, counter=0;
c = getchar();
while(c != EOF)
{
c = getchar();
if(c == '\n')
counter = counter+1;
}
printf("The input contains %d lines", counter+1);
return 0;
}

А вот тот же код с отступом:

#include <stdio.h>

int main (void)
{
int c =0, counter=0;
c = getchar();

while(c != EOF)
{
c = getchar();

if(c == '\n')
counter = counter+1;
}

printf("The input contains %d lines", counter+1);

return 0;
}

Таким образом, вы можете видеть, что код с отступом выглядит отсортированным и его легко читать и просматривать.

Возможно, вы заметили в предыдущих уроках, что мы использовали следующий способ увеличения переменной:

a = a+1;

Хотя в этом нет ничего плохого, есть еще один способ, который популярен и широко используется. Его использовать оператор приращения.

a++

Таким образом, значение a увеличивается на 1. Обратите внимание, что это постинкремент. Также есть оператор предварительного увеличения:

++a

Разница между ними заключается в пост-инкременте, сначала используется переменная, а затем ее значение при инкременте. С другой стороны, в предварительном приращении значение сначала увеличивается, а затем используется переменная.

Следующий фрагмент кода лучше объяснит разницу.

#include <stdio.h>

int main (void)
{
int a =0, b=0;

printf("a = %d", a++);
printf("\n b = %d", ++b);

return 0;
}

Вывод этой программы:

a = 0
b = 1

Таким образом, вы можете видеть, что в то время как пост-инкремент не отразился сразу, пре-инкремент отразился.

Та же логика применима и к операторам декремента.

#include <stdio.h>

int main (void)
{
int a =1, b=1;

printf("a = %d", a--);
printf("\n b = %d", --b);

return 0;
}

Результат:

a = 1
b = 0

Есть два способа, которыми вы можете комментировать код на C. Один из них использует //. Таким образом, вы можете комментировать только одну строку за раз.

// int a = 10;
// a = 9;

Другой способ - поставить /* .... */ вокруг строк. Это позволяет комментировать несколько строк одновременно.

/* int a = 10;
a = 9; */

До сих пор мы касались только цикла while, в котором выполнение кода входит в блок while только в том случае, если условие истинно.

while(condition)

{

/*

   line of code

   line of code

   ...

*/

}

Также существует цикл do-while, в котором блок кода выполняется один раз в первый раз, а затем проверяется условие while.

 do
{

// few lines of code

} while (condition);

Теперь возникает вопрос, когда использовать do-while? Я приведу вам пример. Предположим, вы хотите, чтобы пользователь ввел значение больше 10, и требуется, чтобы пользователь продолжал вводить такое значение, пока программа его не получит. Тогда вот как цикл do-while будет полезен в этом случае:

do
{
printf("Please enter a number greater than 10: ");
scanf("%d", &n);

}while(n<=10);

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

for(initialization; condition; increment/decrement)
{
// lines of code here
}  

Вот пример кода, который печатает все четные числа от 0 до 20.

#include <stdio.h>

int main()
{
int i;

for(i=0;i<=20;i=i+2)
printf(" %d ", i);

return 0;
}

Конечно, есть много советов и приемов, связанных с циклом for, но давайте обсудим их медленно и постепенно в наших будущих уроках.

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