Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
#1

Нужен ли символ ; в конце составного оператора? - C++

02.04.2012, 13:32. Просмотров 355. Ответов 5
Метки нет (Все метки)

Читаю про if
Написано:
C++
1
2
3
4
if (a > 3)
{
temp = 10;
}
Но на следующей странице такая вещь:
C++
1
2
3
4
if (SomeValue < 10)
{
SomeValue = 10;
};
Меня смутила строчка 4, так как там после символа } стоит ; хотя во всех примерах до этого в конце составного оператора после закрывающей фигурной скобки } точка с запятой не ставилась. Я естественно подумал, что опечатка. Хотел было уже зачеркнуть символ ; в учебнике, но решил проверить. В готовом коде на компе добавил после } символ ; и скомпилировал. Всё работает! Странно.

Так что же это получается? Можно хоть ставить ; а хоть и не ставить? На моё усмотрение? Такая вольность и ни слова об этом в книге. Хотя книга хорошая в целом. Там всё до мелочей разжёвывается. Но вот про этот момент автор почему-то умолчал.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 13:32     Нужен ли символ ; в конце составного оператора?
Посмотрите здесь:

Перегрузка оператора минус для матриц. Программа зависает в конце своей работы - C++
Написал программу на перегрузку оператора минус для матриц. Например: беру 3 объекта класса matr D=A-B; Всё работает;вычтет из...

Не понятный дополнительный символ в конце файла - C++
Друзья помогите пож-та разобраться с проблемой. Ниже простой пример посимвольного считывания из файла # include &lt;fstream&gt; # include...

Мусор при выводе не смотря на \0 символ в конце строки - C++
qq Есть проблемка с выводом мусора в конце строки Вот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; ...

Удалить в текстовом файле символ распределитель в конце строк - C++
Нужно создать програму, что будет удалять в текстовом файле символ распределитель(пробел, символ табуляции) в конце строк. Нужно...

Лишний символ в конце при выводе через fgetc - C++
Выводится лишний символ &quot;я&quot; в самом конце текста, как бы я не изменял содержимое текстового файла #include &quot;stdafx.h&quot; #include...

Нужен пример оператора switch - C++
Приведите пожалуйста простенький пример оператора switch с пояснением. просто чтоб понять как он работает) (в книге непонятный пример)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.04.2012, 13:34     Нужен ли символ ; в конце составного оператора? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    ;;;;;;;;;;;
    std::cout << "You right " << std::endl;;;;;;;;;;;;;
    return 0;;;;;;;;;;;;;;;
};;;;;;;;;;;;
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
02.04.2012, 13:36     Нужен ли символ ; в конце составного оператора? #3
Alex Z, semicolon ; здесь является пустым оператором. Он здесь к ифу не относиться. Например можно так сделать:
C++
1
2
3
4
int main()
{
   ;
}

Не по теме:

soon, опять я страницу не перезагрузил

soon
02.04.2012, 13:39
  #4

Не по теме:

soon, опять я страницу не перезагрузил
Если нажимать на предпросмотр(расширенный режим), там видны последне ответы. И не надо страницу обновлять

Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
02.04.2012, 13:41  [ТС]     Нужен ли символ ; в конце составного оператора? #5
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    ;;;;;;;;;;;
    std::cout << "You right " << std::endl;;;;;;;;;;;;;
    return 0;;;;;;;;;;;;;;;
};;;;;;;;;;;;
А! Только сейчас до меня дошло! Ведь эту хрень:
C++
1
2
3
4
if (SomeValue < 10)
{
 SomeValue = 10;
 };
можно записать вот так:
C++
1
2
3
4
5
if (SomeValue < 10)
{
 SomeValue = 10;
 }
;
Тогда строчка 5 будет восприниматься просто как пустой оператор!
Зря эфир засорил тупой темой.

Добавлено через 46 секунд
Цитата Сообщение от dimcoder Посмотреть сообщение
Alex Z, semicolon ; здесь является пустым оператором. Он здесь к ифу не относиться. Например можно так сделать:
C++
1
2
3
4
int main()
{
   ;
}

Не по теме:

soon, опять я страницу не перезагрузил

Да, я понял. )))
dimcoder
02.04.2012, 13:41     Нужен ли символ ; в конце составного оператора?
  #6

Не по теме:

Цитата Сообщение от soon Посмотреть сообщение
И не надо страницу обновлять
я не в расширенном режиме работаю. Быстрый ответ юзаю.

Yandex
Объявления
02.04.2012, 13:41     Нужен ли символ ; в конце составного оператора?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru