[Играет музыка] ДАГ Lloyd: Привет, так что давайте говорить о операторов С. Таким образом, мы уже видели одно, на самом деле, равна оператор присваивания. Это позволяет нам просто положить значение в переменной. Это назначение Оператор, один знак равенства. Для того, чтобы манипулировать и работы со значениями и переменных в C, у нас есть ряд операторов в нашем распоряжении, что мы можем использовать. Давайте взглянем на некоторые из распространенных начиная с арифметическими операторами. Как вы могли бы ожидать, что мы можем сделать довольно основные математические операции в С Мы можем добавить, вычитать, умножать, и число делить с использованием плюс, минус, звезда, и слэш, соответственно. Вот несколько строк код, в котором мы делаем это. Итак, мы имеем INT х равен у плюс 1. Давайте предположим, что где-то наверху этой строки кода мы сказали INT у равен 10. Что значение х после I выполнить первую строку кода? Вы сказали, 11? Вы бы право. Почему это? Ну, у 10 был. Некоторые я говорю INT х равен 10 плюс 1. 10 плюс 1 11. Таким образом, значение 11 получает хранится в переменной х. Не слишком плохо, верно? Как об этом следующей строке Код? х равен х раз 5. Ну, прежде чем мы выполнили эта строка кода, х было 11. Итак, что такое значение х после этой строки кода? Возьмите второй. Так, х равен х раз 5. х был 11. Так, х равен 11 раз 5. Или 55. Так что, если вы сказали, 55, вы были бы правы. Теперь, это может быть немного запутанным, но с тем, как назначение работает в C это значение на право получает назначен на стоимости слева. Итак, сначала мы оцениваем х раз 5. Так, в 11 раз 5 55. А потом мы храним это значение в х. 11-что там было ранее, сейчас перезаписаны. Так Х значение сейчас 55. Надеюсь, что это довольно просто. Там еще один оператор, который вы имеете вероятно, не обязательно слышал назвал это, но вы конечно, работали в прошлом если вы помните свои дни долго разделение еще в начальной школе. Это называется оператором модуль. Что модуль делает это дает остаток когда вы разделите двух чисел. Так что, если я говорю, 13 делится на 4, что остальная? И это значение будет рассчитываться оператором модуля. Так, у меня есть строки кода здесь, INT м равна 13 мод 4. И я говорю здесь, в комментариях значение, что М является в настоящее время 1. Почему я так говорю? Ну, делать долгий разделение в ваш голова, если вы терпите меня на секунду. Итак, я 4 делится на 13. 4 переходит в 13 три раза с остатком 1. Так, в основном, все модуль оператор делает это говорит вам, когда вы делить, вы получите остаток. Вы думаете, что на самом деле не страшно полезная вещь, но вы были бы удивлены, на самом деле, по тому, как часто тот модуля Оператор может пригодиться. Там есть пара проблем мы сделаем CS50, что справиться с ней. Это также хорошо для этого вещи, как случайное число. Так, например, если вы когда-либо слышал генератора случайных чисел, что собирается дать вам номер от 0 до некоторой огромного количества. Но, может быть, вы только действительно нужно число от 0 до 20. Если вы используете оператор модуля на этой гигантской числа, получает порожденный генератор случайных чисел, Вы собираетесь принять все огромное значение это, разделите его на 20, и получить остаток. Остальная может только иметь значение от 0 до 19. Таким образом, вы использовать оператор модуля воспользоваться этой огромное количество и свести его на что-то немного больше смысла. Я уверен, что вы будете возможность использовать оба эти в какой-то момент в будущем в CS50. Так, С также дает нам возможность применить арифметику оператору одной переменной в чуть более сокращенном пути. Так, в предыдущем слайде, мы видели х равна х раз в 5. Это работало. х раз 5, то получает хранится еще в х. Там это более короткий путь, чтобы сделать это, мысль, и это синтаксис х раз равна 5. Это точно такой же вещь, как говоря х равна х раз 5. Это просто немного короче способ сделать это. И когда вы увидите некоторые Код распределения или увидеть некоторые образцы кода, что делает вещи, как это, просто быть знакомым с что означает синтаксис. Вы, конечно, не имеют чтобы использовать его, но если вы делаете, это может сделать ваш код выглядеть немного дождевик. И знайте, что вы также можете использовать любой из различные операторы, мы уже видел вместо раз. Можно сказать, х плюс равна 5, минус равен 5, раз, разделяй и мод. Все эти работы. Там также то, что это так распространено в C что мы решили уточнить, что еще дальше. Увеличение значения переменной на 1 или уменьшая переменную по 1 это такая общая thing-- особенно когда мы говорим о петель чуть позже on--, что мы решили вместо говоря что-то вроде х плюс равен 1, или х равен х + 1, мы даже Короче говоря, что передал х плюс плюс. Так, х равен х + 1, X равна 1 плюс, и х плюс плюс все делаем то же самое. Они все приращение х на 1. Но что приращение и уменьшая на 1 это настолько часто, что у нас есть плюс плюс и минус минус которые позволяют нам обсчитывать что еще больше. Итак, давайте переключиться на секунду и говорить о логических выражений. Все, которые также вид попадают в общая категория операторов. Но логические выражения, в отличие от арифметических операторов, используются для сравнения значений. Так, опять же, все булевы выражения в C оценить к одному из двух возможных значений, помню. Правда или ложь. Вот только два значения, которые Логическая переменная может принимать. Мы можем использовать результаты из логического выражения в большом количестве способов программирования. В самом деле, вы будете делать это довольно много. Например, мы могли бы решить, хорошо, если некоторое условие истинно, может быть, я возьму это ветвиться вниз мой код. Условный, так сказать. Мы узнаем о тех, в ближайшее время тоже. Или может быть, так долго, как это правда, я хочу, чтобы продолжать это делать снова и снова и снова. Петля. В обоих случаях, знают, что мы используем логическое выражение, истинным или ложным, чтобы решить, стоит ли принять особый путь. Иногда, когда мы работаем с логических выражений, мы будем использовать переменные типа Bool. Вы, возможно, заявил логическое значение переменной набрали, и вы будете использовать в вашем Логическое выражение. Но вы не всегда нужно делать. Как выясняется, в C, каждый не-0 Значение такой же, как изречение. Если бы вы объявлена переменная типа Boolean, и назначен его значение верно, что это так же, как объявления целое и присвоение ему значения 1, 2, 3, или действительно любое значение бы то ни было, кроме 0. Потому что в C, каждый не-0 значение верно. 0, а с другой стороны, является ложным. Это может прийти в пригодится позже, чтобы знать, но просто что-то, чтобы держать в уме. Мы не всегда должны использовать Логические переменные типа, когда мы работают с булевыми выражениями. Есть два основных типа Boolean выражения, которые мы будем работать с. Логические операторы и реляционные операторы. Язык есть не очень важно. Это на самом деле просто, как я их группировки. И вы, конечно, я думаю, что быстро понять, что реляционная оператор, на основе того, что они, когда мы говорить о них в секунду. Но не беспокойтесь о необходимости запоминания термин логический оператор или оператор сравнения. Я просто использовать его для группы их в логическом порядке. Итак, давайте взглянем на три логические операторы что мы увидим совсем немного в программировании в CS50 и в программировании в целом. Логическое И правда, если и только если оба операнда истинны. В противном случае ложь. Где же это значит? Итак, давайте говорить, что я нахожусь в указать в мой код, где я есть две переменные х и у. И я хочу, чтобы решить, стоит ли сделать что-то в моем коде на основе, если х истинна и у истинна. Я только хочу, чтобы это сделать, если оба верны, в противном случае я не хочу идти вниз, что Путь, потому что это не поможет мне. То, что я могу сказать, это, если х & & Y. Это будет логическим Логический Выражение сравнения х и у и принимая определенный путь на основании того, что их значения. Таким образом, если х истинна и у верно на основе этой таблицы истинности здесь, только тогда мы идем по этому пути. Если х, и у &. Это только true-- и только верно, если х истинна и у истинна. Если один является ложным, как мы видим таблицу истинности, то оба х и у, не соответствуют действительности. И так, х & & у ложна. Логическое ИЛИ истинно, если и только если по крайней мере один из операндов верно. В противном случае ложь. Так логическое И требуется и х и у, чтобы быть правдой. Логическое ИЛИ требует х, чтобы быть правдой или у чтобы быть правдой, или оба х и у, чтобы быть правдой. Так, опять же, мы как-то найти сами в ситуации куда мы идем, чтобы наш код, и мы достигли развилки на дороге. И мы хотим, чтобы перейти вниз частности, если путь х верно или у верно, но не обязательно, если оба истинны. Но, возможно, если оба истинны. Так что, если х истинна и у является правда, мы пойдем по этому пути. х верно. Один из них, правда, не так ли? Если х и у верно верно. Если х, правда, и у ложна, один из них по-прежнему верно. Так, х или у по-прежнему верно. Если х является ложным, и у верно, один из них по-прежнему верно, верно? у верно, то в этом случае. Таким образом, это правда, что х или у верно. Только если х ложна и у ложна бы нам не пойти по этому пути, потому что ни х, ни у верно. Теперь, если вы ищете на экране прямо сейчас и интересно, что это символ логического ИЛИ, это называется вертикальная полоса. И если вы, глядя на клавиатуре за минуту, как я делаю сейчас, это, как правило, чуть выше Введите ключ, на большинстве клавиатур, на той же клавише, что обратный слеш. Это также, как правило, прямо рядом с квадратные скобки. Так, это может быть ключ, который вам не набрали очень много в прошлом. Но, если Вы когда-либо делать логические сравнения, как мы будем делать Много в курсе, что это будет полезно найти этот ключ и использовать его. Таким образом, это, как правило, на той же клавише а обратная косая черта чуть выше Enter. Окончательный логический оператор НЕ. И не довольно проста. Это инвертирует значение своего операнда. Если х верно, то не х ложно. Если х является ложным, то не х верно. Иногда вы будете слышать этот символ произносится как треском или восклицание или нет. Это в значительной степени все то же самое. В случае, если вы слышите, что говорят, и Вы не уверены, что это значит, это просто восклицательный точка, но иногда это называется пара разные вещи. Ладно, так что занимает заботиться о логических операторов. Итак, давайте поговорим о реляционные операторы. Опять же, если вы знакомы с этим арифметическое назад в начальной школе, Вы, наверное, знакомы с тем, как они работают уже. Они ведут себя так, как вы ожидали. Так меньше, чем правда, в этом Например, если х меньше у. Так, если х 4 и у 6, х меньше у. Это правда. Меньше или равно работает довольно аналогичным образом. Если х 4, и у равно 4, то х меньше или равно у. Больше чем. х больше у. И больше или равна х больше или равно Y. Если это правда, то вы будете пройти это выражение, и вы будете идти вниз что путь на дороге. Если у вас есть, если х больше, чем у, и Х представляет собой, по сути, больше, чем у, вы будете делать все, что подлежат таком состоянии. Обратите внимание, что мы не имеем один символ меньше, чем или равно, как вы могли бы быть знакомы из математических учебников. Таким образом, мы имеем меньше, чем символ, с последующим знаком равенства. Вот как мы представляем меньше или равно. И точно так же, мы делаем, что Для больше или равна. Окончательный две реляционные операторы, которые имеют важное значение тестируем на равенство и неравенство. Таким образом, если х равен равен Y, правда если х и у в значение то же самое. Если х 10, и у 10, а затем х равен равен у верно. Если х и у 10 на 11, х равна равна у не верно. Мы также можем проверить с помощью неравенства Восклицательный знак или взрыва или нет, еще раз. Если х не равен Y, при это тест мы используем здесь, мы бы хорошо идти. Таким образом, если х не равно у, мы пойдем по этому пути. Будьте очень осторожны здесь. Это действительно общая mistake-- и Я, конечно, одним из довольно много, когда Я получаю started-- случайно перепутать оператор присваивания, одиночные равно, для оператора сравнения равенства, двойные равно. Это будет приводить к некоторые странные поведение в коде, и, как правило, компилятор будет предупредит вас об этом, когда вы пытаетесь и скомпилировать код, но иногда Вы могли бы быть в состоянии красться мимо. Это не обязательно хорошо что вы украдкой его, хотя. Точно так же, если вы делаете тест неравенство, если вы проверяете ли два различные переменные имеют одинаковое значение внутри них, убедитесь, что используете равна равных, а не отдельные равных. И таким образом ваша программа будет есть поведение, которое вы собираетесь. Я Дуг Ллойд и это CS50.