Сегодня мы поговорим про перечисления. Что же такое перечисление? Это Enumeration, или Enum. Что такое Enum? Это перечисления. Всем спасибо, урок окончен.
пример суперский да и свич с использованием перечислений открылся в новом свете, даже не знал что его можно так использовать. наверняка в джаве тоже можно так описать свич, будет на много удобнее, чем перебирать все значения для кейсов
Если что в плюсах переменная по умолчанию равна указателю, а не null. Иначе у тебя бы всё работало, null принимается как false. Как и нулевой указатель nullptr.
enum отлично подходит для перечислений (собственно, он для этого и предназначен). Однако, параметры лучше указывать отдельными переменными, т.к. они могут иметь разный тип. Например, здоровье - как целое число, броня - как тип (указанный в своём перечислении), снаряды, кстати, могут быть разного вида и для них вообще можно иметь массив объектов (со своим типом, количеством и прочими параметрами).
Наверное, стоило этот урок рассказать после ООП Енамы удобно использовать, когда одинаковые переменные по смыслу и значению встречаются в разных классах
Перечисления позволяют сгруппировать именованные константы в одно множество, и такая задача встречается как при использовании ООП, так и без него. Я, например, показываю, как применять enum до того, как рассказываю про классы, и активно применяю их потом, когда вовсю использую ООП
Если не инициализировать переменную, то в ней будет храниться "мусорное значение". Null в переменной может быть, только если переменная является указателем! Т.е. в указателе может быть как адрес на ячейку памяти так и NULL! В любом случае мусорное значение.
Максим Бойко, если мы используем объект со статическим временем хранения, он автоматически инициализируется нулем, то есть там не мусор, в отличие от автоматического времени хранения)
Спасибо за прекрасный урок! но у меня вопрос. Изначально мы объявляем,что переменная exit ложна,цикл выполняется пока exit ложен,т.е. пока ложна ложь,т.е. exit = 1.Выход из программы осуществляется при exit = 1,но по моей логике получается,что наоборот,цикл должен повториться.Объясните пожалуйста,где мои рассуждения неверны.Заранее благодарю!
Думаю, вопрос уже давно не актуален, но все же: в условии стоит !exit - знак восклицания меняет логическое выражение на противоположное - если exit изначально 0, то станет 1, и наоборот. Когда пользователь ввел 1, условие стало 0, а цикл выполняется только когда условие верно (1)
Урок хорошый пример отличный но я не согласен что это оптимальный код здесь в таком случаи можно было вобше удалить строку с кодом енум но для начинаюших хорошый пример 👍👍
Я сделал так. #include #include using namespace std; enum market {parking = -1,nul,shop,restoran,roof}; int main () { int floor; bool leave = false; while (!leave) { cout floor; switch (floor) { case parking: cout
я думаю дает преимущество, так как если вы отдельно создадите переменные, они будут занимать много места в памяти, например создав 10 переменных типа int каждая по 4 байта весит у вас получается 40 байт в памяти, если вы создадите enum и объявите эти переменные там, то у вас будет общий вес enum с этими переменными 4 байта, разница как видите есть, это можно проверить с помощью оператора sizeof
когда пишешь с использованием Qt сразу понятно зачем нужны енумы. как по мне - это просто удобный программный интерфейс для кодера, что можно оперировать поименованными переменными и не задумываться об их значении. Например enum Colors_set{red; orange; yellow;} мы хотим задать цвет окна main_window -> color = Colors_set::red И нам абсолютно пофиг какая там цифра... if ((Colors_set::red) == (main_window->color)) thats_ok = true; (Йодина нотация)))) Главное что цвет - красный)))
Подскажите немного, тут же изначально задаётся bool exit = false; а в цикле WHILE мы пишем условие (!exit) то есть отрицание фолса - > while (true), то есть пока екзит = тру выполняется цикл, но екзит у нас false задан, как так
while (УСЛОВИЕ) {тело}, просто запомни: здесь и всегда цикл будет работать, пока его УСЛОВИЕ = true. И как ты уже выше написал, у нас условие = !exit, то есть, = !false, то есть, = true. А как нам известно, пока while (true) - цикл работает,
Забавно, когда вводишь вместо числа любой символ, то floor становится 0 и программа флудит бесконечно в консоли. Кто-нибудь может объяснить почему так?
Гоша пишет код: все понятно. "А теперь немного теории. Перечисление это вы можете создать перечисление опять же таки тавтология." В целом урок норм, но если даешь определение, ты б хоть перед собьой на бумажке держал его)
Вот это прикол). Урок хороший. Но есть проблемка. Написал такой-же код.. Играю. Жму -1. Затем в вопросе: "Хотите играть дальше" набираю случайно 04, -4, 02 и другие бредовые числа. Консоль начинает спамить кучей сообщений. 0-0
Уже и перечитал и пересмотрел кучу всего, но так и не понял, в чем фишка? Почему нельзя просто так же создать константы и написать им значения? Так даже удобнее, ведь если много значений, и тебе надо увидеть какое число соответствует константе, то в построчной записи констант сразу видно, а здесь считать 99ое оно или 100ое???
Короче в Visual studio выдаёт ошибку потому что у тебя xtool а у нас visual studio так вот в чём ошибка в том что enum пишется также как struct только все переменные через запятую пример enum tree { tree1, tree2, tree3};
bool - если,swich - проверка,case-если проверка удалась то выводим cout! ,default-ошибка ,это если проверка не прошла и пользователь выбрал не существующий этаж
Если я не ошибаюсь перечисления используются для оптимизации данных и самого кода. Также учитывая время работы при написании кода, использовать перечисление намного быстрее по сравнению с простым вписыванием значений через int, float, char и тд...
не получается обясните и в чем проблема ??? #include #include using namespace std; enum shop (parking = 0 , magazine , beauty , cafe ): int main(int argc, const char * argv []) { cout
либо я тупой либо на это влияет то что у тебя macbook короче я переписал все что ты тут понаписал и у меня куча ошибок выдает в cpp.sh ? но объясняешь классно !
Просто потому что масив используют для других вещей это во-первых, во-вторых, енам позволяет давать значения имена, а не просто какое-то смещение в непрерывной области памяти (массив), в третьих, нужно какое-то множество значения, который на самом деле ты будешь использовать, а не просто массив создал и все, потом как-то же нужно следить за самим кодом и не превращать это в срач, еще еман только для чисел создан, уже можно было подумать зачем он нужен... Еще занимает меньше памяти, код более читаемый, и тд
enum - это множество именованных констант, сгруппированных по смыслу в одну "коллекцию". Это нужно для того, чтобы, например, вместо "цвет №2" написать Red, что помогает не путать смыслы - например, в одной функции мы используем цвет №2 для вывода надписи №2 игроку №2. Чтобы не путаться, я сделаю 3 перечисления, в котором одному и тому же числу будут соответствовать РАЗНЫЕ имена, например Red, Hello_Text и Second_Player.
Используй русский знакогенератор и не упражняйся с английским . Зачем вставляешь не понятные функции , если вставляешь объясняй . Каким образом он вернется обратно ?
Что за бред ты несешь? По умолчанию null не хранится в переменных. В неинициализированных переменных хранятся мусорные значения. Булевы значения не могут быть объявлены без инициализации.
Сегодня мы поговорим про перечисления. Что же такое перечисление? Это Enumeration, или Enum. Что такое Enum? Это перечисления. Всем спасибо, урок окончен.
он комментатор, такой же как и ты
Отличный урок, в принцыпе как и все у тебя.
Всё доходчиво и просто.
Спасибо большое.
Спасибо! На этажах гораздо понятнее!
спасибо!)твои уроки огонь!все ясно и понятно,если запоминать инфу с прошлых уроков)
пример суперский
да и свич с использованием перечислений открылся в новом свете, даже не знал что его можно так использовать. наверняка в джаве тоже можно так описать свич, будет на много удобнее, чем перебирать все значения для кейсов
Спасибо!Спасибо!Спасибо!Спасибо!
Спасибо за уроки)
10:24 -что напишем на дефолт?
-вы сломали лифт!
Если что в плюсах переменная по умолчанию равна указателю, а не null. Иначе у тебя бы всё работало, null принимается как false. Как и нулевой указатель nullptr.
Спасибо
можно было бы на примере создания меню для lcd показать
Супер
Пример для енамов с деревьями не очень) Можно было массив создать, а так хорошие уроки, спасибо)
Так листаю что не знаю врубаю вообще топ
Подойдёт ли для перечисления параметров, например: здоровье, броня, снаряды и тд?
да норм
enum отлично подходит для перечислений (собственно, он для этого и предназначен). Однако, параметры лучше указывать отдельными переменными, т.к. они могут иметь разный тип. Например, здоровье - как целое число, броня - как тип (указанный в своём перечислении), снаряды, кстати, могут быть разного вида и для них вообще можно иметь массив объектов (со своим типом, количеством и прочими параметрами).
Наверное, стоило этот урок рассказать после ООП
Енамы удобно использовать, когда одинаковые переменные по смыслу и значению встречаются в разных классах
Перечисления позволяют сгруппировать именованные константы в одно множество, и такая задача встречается как при использовании ООП, так и без него. Я, например, показываю, как применять enum до того, как рассказываю про классы, и активно применяю их потом, когда вовсю использую ООП
@@AlexanderSemenko в данном видео, как мне кажется, не очевидно зачем их придумали
давайте поможем набрать ему 1 000 000 подпишиков чтобы он был рад
Не очень цель
@@SHKOLNIKDEN ну да лучше сразу 10 000 000
)))
Если не инициализировать переменную, то в ней будет храниться "мусорное значение". Null в переменной может быть, только если переменная является указателем! Т.е. в указателе может быть как адрес на ячейку памяти так и NULL! В любом случае мусорное значение.
Максим Бойко, если мы используем объект со статическим временем хранения, он автоматически инициализируется нулем, то есть там не мусор, в отличие от автоматического времени хранения)
#include
using namespace std;
enum mall {parking = -1, hall, many_shops, roof};
int main() {
int floor;
bool exit = true;
while (exit) {
cout > floor;
switch (floor) {
case parking:
cout
С каждым уроком наблюдается снижение просмотров и лайков)
Crucify Me! Просто не все доходят до этого, многие бросают!
Слабаки уходят, сильные остаются.
Согласна
а в последнем уроке будет 500 просмотров и 20 лайков.
Могу ли я в ENUM хранить переменные разных типов? Например tree_1 (char), tree_2 (string), tree_3(double).
enum только для чисел создан
Спасибо за прекрасный урок! но у меня вопрос. Изначально мы объявляем,что переменная exit ложна,цикл выполняется пока exit ложен,т.е. пока ложна ложь,т.е. exit = 1.Выход из программы осуществляется при exit = 1,но по моей логике получается,что наоборот,цикл должен повториться.Объясните пожалуйста,где мои рассуждения неверны.Заранее благодарю!
Думаю, вопрос уже давно не актуален, но все же: в условии стоит !exit - знак восклицания меняет логическое выражение на противоположное - если exit изначально 0, то станет 1, и наоборот. Когда пользователь ввел 1, условие стало 0, а цикл выполняется только когда условие верно (1)
Урок хорошый пример отличный но я не согласен что это оптимальный код здесь в таком случаи можно было вобше удалить строку с кодом енум но для начинаюших хорошый пример 👍👍
Программа по enum:
#include
using namespace std;
enum magazine {cover = -1, information_page, scandals, posters, recommendations, quiz};
int main() {
int page;
bool exit = false;
while (!exit) {cout > page;
switch (page) {case cover:
cout
#include
using namespace std;
enum mall { parking = 0, hall, shops, roof };
int main()
{
bool exit = false;
int floor;
while(!exit)
{
cout floor;
switch (floor)
{
case parking:
cout
Я сделал так.
#include
#include
using namespace std;
enum market {parking = -1,nul,shop,restoran,roof};
int main () {
int floor;
bool leave = false;
while (!leave) {
cout floor;
switch (floor) {
case parking:
cout
если мы вместо цифр используем enum , то ,как я понял, создаются куча переменных. Как повлияет это на размер и скорость выполнения программы?
я думаю дает преимущество, так как если вы отдельно создадите переменные, они будут занимать много места в памяти, например создав 10 переменных типа int каждая по 4 байта весит у вас получается 40 байт в памяти, если вы создадите enum и объявите эти переменные там, то у вас будет общий вес enum с этими переменными 4 байта, разница как видите есть, это можно проверить с помощью оператора sizeof
когда пишешь с использованием Qt сразу понятно зачем нужны енумы. как по мне - это просто удобный программный интерфейс для кодера, что можно оперировать поименованными переменными и не задумываться об их значении. Например enum Colors_set{red; orange; yellow;} мы хотим задать цвет окна main_window -> color = Colors_set::red
И нам абсолютно пофиг какая там цифра... if ((Colors_set::red) == (main_window->color)) thats_ok = true; (Йодина нотация)))) Главное что цвет - красный)))
Подскажите немного, тут же изначально задаётся bool exit = false; а в цикле WHILE мы пишем условие (!exit) то есть отрицание фолса - > while (true), то есть пока екзит = тру выполняется цикл, но екзит у нас false задан, как так
while (УСЛОВИЕ) {тело}, просто запомни: здесь и всегда цикл будет работать, пока его УСЛОВИЕ = true. И как ты уже выше написал, у нас условие = !exit, то есть, = !false, то есть, = true. А как нам известно, пока while (true) - цикл работает,
Прочитай это по-другому: while(!exit) эквивалентна while(exit == false). Тогда будет понятнее.
#include "stdafx.h"
#include
#include
using namespace std;enum shop { parking = 0, hall, strsh, kanztov, chshop, prshop, roof };
int main()
{
setlocale(LC_CTYPE, "rus");
int floor;
bool exit = false;
while (!exit) {
cout > floor;
switch (floor)
{
case parking:
cout
очень благодарен вам
Всё получается, всё делаю как вы
Но не могу запомнить все кода, это прийдет со временем или надо зубарить их??
не надо зубрить. Все придет с опытом.
в начале стоит записывать команды в текстовой файл
3:10 как так можно строки копировать? Спасибо заранее
Shift + Home, выделится вся строка с выбранной позиции до конца влево, и Ctrl + C копировать
Спасибо
Или ctrl + A для всего текста
В визуал студио переменная bool принимает 1 как exit и 0 как true
Получается, что это переменные в оперативной памяти? Можно их как-то в константы перенести?
А на 10:57 можно через трай, а не дефолт?
Кто нибудь помогите. Как записывать текст в переменные т.е. буквы
Почему я прописываю в визуал студио !exit и он мне бесконечность раз выдает надпись?
Забавно, когда вводишь вместо числа любой символ, то floor становится 0 и программа флудит бесконечно в консоли. Кто-нибудь может объяснить почему так?
Как сделать проверку exit, если нажмёш больше 1 или меньше 0 на консоли выдаётся бесконечный цикл текста
Почему, когда я нажимаю 1 в конце, то цикл начинается с начала, а не останавливается? Код перепроверил, точно такой же
Мне нравится смотреть как с каждым уроком просмотры падают. Взяться за что-то и бросить - не для пользователей ютюба!
не обязательно, например я смотрю 2-3 блога по ютубу и самоучебник, так намного понятнее
Гоша пишет код: все понятно. "А теперь немного теории. Перечисление это вы можете создать перечисление опять же таки тавтология."
В целом урок норм, но если даешь определение, ты б хоть перед собьой на бумажке держал его)
Я старался.
#include "pch.h"
#include
#include
using namespace std;
enum mall { parcking = -1, hall, many_shops, roof};
int main()
{
setlocale(LC_CTYPE, "Rus");
int floor;
bool exit = false;
while (!exit)
{
cout > floor;
switch (floor)
{
case parcking:
cout
Вот это прикол). Урок хороший. Но есть проблемка. Написал такой-же код.. Играю. Жму -1. Затем в вопросе: "Хотите играть дальше" набираю случайно 04, -4, 02 и другие бредовые числа. Консоль начинает спамить кучей сообщений. 0-0
Уже и перечитал и пересмотрел кучу всего, но так и не понял, в чем фишка? Почему нельзя просто так же создать константы и написать им значения? Так даже удобнее, ведь если много значений, и тебе надо увидеть какое число соответствует константе, то в построчной записи констант сразу видно, а здесь считать 99ое оно или 100ое???
Почему объединения не объяснили?
6:32 exit = false
!exit = не exit = не false(true)
В этом моменте я не понял логики, объясните пожалуйста
!exit это сокращение от exit == false
Так в чем отличие массива от енум? Твой лифт можно сделать с тем же успехом массивами
он просто на примере лифта показал как работает enum.
а вот как лучше зделать,и он сам знает.
переписал твой код) Почему у меня не работает он?
Попробуй в int main стереть всё что находится в круглых скобках
Короче в Visual studio выдаёт ошибку потому что у тебя xtool а у нас visual studio так вот в чём ошибка в том что enum пишется также как struct только все переменные через запятую пример enum tree { tree1, tree2, tree3};
А если ввести 2 , как пофиксить бесконечный код
Goto
а что значит bool, swich, case, default???
bool - если,swich - проверка,case-если проверка удалась то выводим cout! ,default-ошибка ,это если проверка не прошла и пользователь выбрал не существующий этаж
у меня просто "bool = exit;" работает без инициализации.
че блять
Мне понятно зачем они. Чтобы создать игру змейку.
Попробуйте в этом коде ввести 1.2
азазазазахахахаахахаахахха чел ты крут
я не могу понять одного. А для чего это перечисление вообще нужно? Где его использовать?
Если я не ошибаюсь перечисления используются для оптимизации данных и самого кода. Также учитывая время работы при написании кода, использовать перечисление намного быстрее по сравнению с простым вписыванием значений через int, float, char и тд...
не получается обясните и в чем проблема ???
#include
#include
using namespace std;
enum shop (parking = 0 , magazine , beauty , cafe ):
int main(int argc, const char * argv []) {
cout
#include
#include
using namespace std;
enum shop {parking = 0 , magazine , beauty , cafe};
int main(int argc, const char * argv []) {
cout
И неважно что уже 4 месяца прошло))
кстати нулевого этажа не бывает
да ну! Пару раз видела точно.
либо я тупой либо на это влияет то что у тебя macbook короче я переписал все что ты тут понаписал и у меня куча ошибок выдает в cpp.sh ? но объясняешь классно !
хотите прикол видите на этапе 14:00 222222 ))))
Зачем нужен enum, если это можно реализовать это через массивы?
Просто потому что масив используют для других вещей это во-первых, во-вторых, енам позволяет давать значения имена, а не просто какое-то смещение в непрерывной области памяти (массив), в третьих, нужно какое-то множество значения, который на самом деле ты будешь использовать, а не просто массив создал и все, потом как-то же нужно следить за самим кодом и не превращать это в срач, еще еман только для чисел создан, уже можно было подумать зачем он нужен...
Еще занимает меньше памяти, код более читаемый, и тд
enum - это множество именованных констант, сгруппированных по смыслу в одну "коллекцию". Это нужно для того, чтобы, например, вместо "цвет №2" написать Red, что помогает не путать смыслы - например, в одной функции мы используем цвет №2 для вывода надписи №2 игроку №2. Чтобы не путаться, я сделаю 3 перечисления, в котором одному и тому же числу будут соответствовать РАЗНЫЕ имена, например Red, Hello_Text и Second_Player.
Введите дробное значение и цикл станет бесконечным!
Насчет значений по умолчанию
Для С++ 17 это НЕВЕРНО!
Выдаст ошибку, NULL не присваивается.
Нет значения по умолчанию, есть мусор
Ths
Программист которому нужно было создать перечисления на лифт с БурджХалиф всм…
Используй русский знакогенератор и не упражняйся с английским . Зачем вставляешь не понятные функции , если вставляешь объясняй . Каким образом он вернется обратно ?
1
Ихняя вся суть...
ЧЛЕНОГРАМ ЕБАНЫЙ СУУУУУУУУКА
Что за бред ты несешь? По умолчанию null не хранится в переменных. В неинициализированных переменных хранятся мусорные значения. Булевы значения не могут быть объявлены без инициализации.
майнус one
одна вода...
#include
using namespace std;
enum mall {parking =-1, hall, many_shops, roof};
int main()
{
int floor;
bool exit= false;
while(!exit){
coutfloor;
switch(floor){
case parking:
cout