Итак, я перейду к нескольким вещам в программировании на Си, которые я уже упоминал ранее.
Однако мне трудно вспомнить пару вещей, которые снова становятся актуальными.Я начинаю писать более сложные программы, которые используют все больше и больше условных операторов, и я не могу их правильно описать.
Напомним, я знаю, что в C логические операторы определяют значениесостояние одним из двух способов, истина или ложь.Что в действительности равно 1 или 0.
Возьмем в качестве примера следующее выражение: (если x
равно 4
, y
равно 5
, z is 3
)
x > z && y > z
Вставьте значения ...
4 > 3 && 5 > 3
Итак, с точки зрения булевой логики ... Я знаю, что значение этого утверждения на самом деле: 1 && 1
, что равно 1 (true)
или ... (с такими же значениями переменных, как указано выше)
z >= x && x <= y
На самом деле значение этого оператора: 0 && 1
, что равно 0 (ложь из-за логического &&)
Так вот, где мне нужна помощь ...
Я не могу вспомнить, как приравнять вещи в нескольких различных формах выражений, таких как это: новые значения: x = 3
, y = 0
, z = -3
)
x && y || z
каково логическое значение чего-то подобного?Без каких-либо операторов, таких как <
, >
, ==
и !=
?
это было бы ...
x && y || z
1 0 1
что равно 1 для истины?потому что x && y становится ложным (потому что любое ложное с && является ложным), но затем следует ||
(ИЛИ), которое, если есть истина, это правда?
Имеет ли смысл мой вопрос?
или как насчет выражения, которое выглядит следующим образом ... (если x = 5
, y = 1
)
!x + !!y
, что будет здесь логическим значением?Это
!(5) + !(!)(1)
0 1 which would be 1 true?
Я добавляю ноль и единицу?Наверное, нет.
Я, наверное, слишком обдумал это.