Ramza360
Записка, которая поможет вам в будущих начинаниях. При выполнении условных выражений (включая циклы, где это применимо) его часто легче отлаживать при размещении значений сравнения, которые не могут измениться в левой части проверки.
Возьмем, к примеру, приведенный ниже код. Он действительно делает проверку, но после того, как он устанавливает значение 10 в переменную i. Использовать двойной знак равенства-для проверки равенства.
if (i = 10)
Однако я хочу подчеркнуть, что если вы разместите неизменяемое значение слева, компилятор будет кричать на вас за подобные ошибки.
if (10 = i)
// Results in compiler error.
if (10 == i)
// The above is valid now that the debugger threw the exception for you to fix.
Я делаю это с большинством условных выражений, включая нулевые проверки, так как для этого произойдет то же самое. Он не может быть "установлен" ни на что, поэтому генерируется исключение компилятора.
И, как сказали Дэйв и Ричард, хорошая книга и/или изучение некоторых учебных пособий могут помочь вам решить ваши проблемы.
Dave Kreskowiak
Вероятно, потому, что вы повторили ответ(Ы), который уже охватывал то, что вы сказали.
Ramza360
Все присутствующие здесь повторили предыдущее решение / Комментарии. Я добавил дополнительный фрагмент * справки*, который большинство учебников не укажут на обратное сравнение, чтобы иметь немодифицируемые значения на левой стороне.
Как бы то ни было, у ОП есть несколько ответов, из которых, надеюсь, можно извлечь уроки :)
Dave Kreskowiak
Ты не следишь за тем, что делает этот парень. На самом деле он не прилагает никаких усилий, чтобы чему-то научиться. Он вампир-помощник.