Наиболее частые ошибки в программировании

 



 

Некоторые синтаксические ошибки в C++


1) Точки с запятой

Каждое действие в программе на C++ завершается символом ';'. Стоит внимательно проверить, стоят ли точки запятой в конце строк с командами:
cin >> a;
b=a*a;
if(a>1)
{
    b=b+a;
    cout << b;
}

В случае отсутсвия точки с запятой компилятор сообщит, что не хватает символа ';' перед следующей за ней командой.

Следующий код ошибочен, так как точка с запятой означает конец текущей команды. В таком случае условный оператор не выполнит ничего, а действия в фигурных скобках будут выполняться вне зависимости от условия.
if(a>1);
{
    b=b+a;
    cout << b;
}

2) Правильность написания операторов, типов данных и т.д.

Опечатки случаются. Если команда написана неверно, компилятор сообщит, что это неизвестное ему наименование оператора, типа данных и т.д.

3) Правильность использования команд

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

4) Определены ли все используемые переменные?

Если не инициализировать (объявить) переменную до операций с ней, компилятор сообщит, что данная переменная не инициализирована.

Неправильно:
cin >> a;
int a;

Правильно:
int a;
cin >> a;

5) Правильность написания имён переменных

Если имя переменной написано неверно, компилятор сообщит, что переменная с данным именем не инициализирована.

6) Фигурные скобки и другие парные символы

Символы фигурных скобок '{' и '}' в C++ служат для объединения операций в блоки. Как и все остальные скобки и кавычки, эти скобки должны быть парные, т.е. для каждой открывающей скобки в коде должна иметься закрывающая.
Не являющаяся синтаксической, но всё же связанная с синтаксисом ошибка - отсутствие сразу пары фигурных скобок. Операторы в C++ выполняют ровно одну операцию, указанную после них. Заключая группу операций в скобки, вы объединяете их в один блок, который выполнится целиком после оператора. В следующем кода под условием оказывается только строчка с присваиванием, а вывод числа будет срабатывать вне зависимости от условия:
if(a>1)
    b=b+a;
    cout << b;

Читать полностью Комментарии (0)





Версия для печати