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