#22. Оператор цикла while | Язык C для начинающих

  Рет қаралды 5,576

selfedu

selfedu

Жыл бұрын

Практический курс по C/C++: stepik.org/course/193691/
Телеграм-канал: t.me/java_and_c
Инфо-сайт: proproprogs.ru/c_base
Что такое циклы, зачем они нужны и как можно реализовать цикл с помощью оператора while. Цикл с предусловием.

Пікірлер: 21
@vladimirastrelin1719
@vladimirastrelin1719 2 ай бұрын
Спасибо за Ваши труды, Сергей, Вы лучший преподаватель! Подача материала на самом высшем уровне! Отдельное спасибо за панд скатывающихся с горки :)
@user-zw3dt4qx3i
@user-zw3dt4qx3i Жыл бұрын
Утром отлично заходит👍😎
@donfedor007
@donfedor007 Жыл бұрын
Спасибо! Очень интересно!!!
@andredru4278
@andredru4278 4 ай бұрын
Спасибо. Все понятно.
@ufc_uz6
@ufc_uz6 Жыл бұрын
Спасибо!
@renigat_tv9051
@renigat_tv9051 9 ай бұрын
Отличное объяснение материала !!!
@user-xm5zl9up4r
@user-xm5zl9up4r 4 ай бұрын
Спасибо
@jamjam3337
@jamjam3337 11 ай бұрын
спасибо!👏👍
@TheTVfootbal
@TheTVfootbal Жыл бұрын
Очень понравились ваши уроки по Flask, хотел бы узнать будут ли по Fast API?
@selfedu_rus
@selfedu_rus Жыл бұрын
Пока не планирую.
@weerbox
@weerbox Жыл бұрын
По поводу условия (++i
@weerbox
@weerbox Жыл бұрын
Погуглил, почитал 99 стандарт и пришёл к такому выводу. В выражении (i++
@selfedu_rus
@selfedu_rus Жыл бұрын
Все логические операции (&&, ||) являются точками следования, т.е. все побочные эффекты выполняются при переходе к следующему подусловию. Поэтому операции инкремента выполнятся до проверки i
@weerbox
@weerbox Жыл бұрын
@@selfedu_rus это как раз понятно, вопрос был не в этом. Я про то, верно ли я понял, что n++, возвращает копию данных (rvalue), а уже после, до начала следующей точки следования происходит инкремент n (lvalue). Т.е. тогда утверждение из более раннего видео, где говорилось, что в операторе вида i = n++; происходит сначало присвоение i = n, а затем инкремент n, не совсем верно, т.к. согласно стандарта, точный момент инкремента n в данном случае не определен, но должен произойти до начала следующей точки следования. Т.е. инкремент n вполне может произойти и до присвоения значения i, т.к. операция присвоения не является точкой следования.
@selfedu_rus
@selfedu_rus Жыл бұрын
@@weerbox Не совсем понимаю тогда вопроса. В команде: i = n++; переменной i присваивается именно копия n (как иначе?), а значит, инкремент сработает точно, после присваивания, иначе копия n оказалась бы на единицу больше (инкремент на уровне машинных кодов работает с самой переменной), а это уже противоречение порядка работы постфиксной формы инкремента.
@weerbox
@weerbox Жыл бұрын
@@selfedu_rus А почему вы не рассматриваете такой вариант?: 1. n++ возвращает копию значение равное значению n (это же еще не присвоение в i, а вычисление правого операнда, ведь выражение может быть и чуть сложнее например i = n++ + 1;) 2. n инкрементится (при этом возвращенное n++ rvalue не меняется т.к. оно не ассоциировано с областью памяти на которое ссылается n) 3. i присваевается вычисленное правостороннее выражение (в котором не использовалось инкременченное значение n) А если бы было точно известно, что инкрементится только после присвоения, то тогда бы, как я понимаю, не было никакого неопределенного поведения в операторах типа: i = n++ + n++; i = n++ + n; i = i++; и т.д. Вот что написано в 99 стандарте по этому поводу: "The result of the postfix ++ operator is the value of the operand. After the result is obtained, the value of the operand is incremented. (That is, the value 1 of the appropriate type is added to it.) ... The side effect of updating the stored value of the operand shall occur between the previous and the next sequence point." А так как присвоение не является sequence point, следовательно инкремент возможен как до (т.е. на начале инструкции i = n++;), так и после присвоения (т.е. до следующей точки следования), отсюда и ub в тех примерах выше. Я так понимаю.
@martinbecker3165
@martinbecker3165 Жыл бұрын
Здравствуйте. Почему видео 35, а показывает 23, 12 скрыто, или есть условия для их просмотра ?
@selfedu_rus
@selfedu_rus Жыл бұрын
Они будут постепенно выходить.
@elbinalfadorson3822
@elbinalfadorson3822 Жыл бұрын
Подскажите, а cin >> из С++ тоже можно с while запихнуть как scan()?
@selfedu_rus
@selfedu_rus Жыл бұрын
да, можно
22 Цикл while. Инструкции break, continue, else
7:38
egoroff_channel
Рет қаралды 110 М.
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 55 МЛН
О, сосисочки! (Или корейская уличная еда?)
00:32
Кушать Хочу
Рет қаралды 8 МЛН
Операции над событиями на кругах Эйлера
2:19
Ирина Токмакова
Рет қаралды 2,7 М.
Что пишут на языке программирования C++?
16:27
На скрижалях сердца
4:21
SlavicCenter Tacoma
Рет қаралды 2,9 МЛН
Ohm's law in simple words with examples
16:16
ElectronicsClub
Рет қаралды 990 М.
18 Цикл while Python
12:43
egoroff_channel
Рет қаралды 250 М.
Сортировка массива вставками на Си
14:25
Тимофей Хирьянов
Рет қаралды 70 М.