Почему это утверждение if «так близко, но так далеко»?

Я работаю над оператором If и хочу выполнить два условия, чтобы игнорировать цикл. Сначала это казалось легким, но теперь ... я не знаю. это моя дилемма ...

if ((radButton1.checked == false)&&(radButton2.checked == false))
{
    txtTitle.Text = "go to work";
}

Дилемма «приступить к работе» не выполняется, если radButton1 имеет значение false, а radButton2 истинно. Разве не должно требоваться, чтобы оба условия были ложными, чтобы пропустить оператор?

Похоже, что вам нужно ||, а не &&. && делает то, что написано на этикетке «и». a && b истинно, если оба истинны и a AND b.

jalf 25.11.2008 21:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
546
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

Нет, он требует, чтобы они оба были ложными для выполнять оператора.

Нет, это требует, чтобы оба условия были ложными для оператора выполнять. Прочитай заново:

if ((radButton1.checked == false) && (radButton2.checked == false)) {
    txtTitle.Text = "Go to work";
}

На английском языке: «Если radButton1.checked - ложь И radButton2.checked - ложь, то установите текст txtTitle.Text для «Иди на работу» ».

Если вы хотите пропустить оператор, когда оба условия ложны, отвергните свою логику, например:

if ((radButton1.checked == true) || (radButton2.checked == true)) {
    txtTitle.Text = "Go to work";
}

В переводе на английский это будет выглядеть так: «Если radButton1.checked - истина ИЛИ radButton2.checked - истина, тогда установите текст на« Go to work »». Это означает, что если какое-либо условие истинно, оно выполнит оператор или, если оба ложны, пропустит его.

Я сожалею о том, что. Я хочу, чтобы он выполнил команду, если они оба ложны, но кажется, что он прыгает, если одно из условий ложно.

Lulu Ket 25.11.2008 20:00

Вам нужно установить отладчик и посмотреть, что происходит ... вы можете подумать, что это правда, но может быть не так

Vinko Vrsalovic 25.11.2008 20:05

В вашем примере он будет выполнять код txtTitle.Text = "go to work" ТОЛЬКО, если ОБЕИХ кнопки являются ложными. Таким образом, одно из истинных, а другое - ложных, пропустит утверждение.

Нет. Чтобы пропустить одно из этих утверждений, необходимо, чтобы оно было ложным. Посмотрите, если:

if (condition1 && condition2) {
    doSomething();
}

Поэтому, если условие1 ИЛИ условие2 не истинно, оно не будет выполнено.

Скажем, у меня есть две переменные с именами A и B

Если A и B имеют эти значения

A     true    true    false   false
B     true    false   true    false

тогда эти операции возвращаются

AND   true    false   false   false
OR    true    true    true    false
XOR   false   true    true    false
NAND  false   true    true    true
NOR   false   false   false   true
XNOR  true    false   false   true

Обратите внимание, что нижние 3 во второй таблице являются логическими противоположностями (т. Е. Они НЕ применялись) первых трех в той же таблице.

Я заставил его работать. Я вижу, что они оба должны быть ложными для выполнения оператора, для этого оператора способ удовлетворить оба условия - использовать

if (!((radButton1.checked == true)&&(radButton2.checked == true)))
{
    ...
}

Что логически эквивалентно: if (radButton1.checked == false || (radButton2.checked == false) {...} Мораль истории, важно понимать разницу между ИЛИ (||) и И (&& ).

An̲̳̳drew 25.11.2008 20:32

Лулу, Гбарри и Винко изо всех сил пытались объяснить, что есть что? После этого вы также не могли решить, что вам нужно. Ваш измененный код и первый фрагмент кода делают то же самое. Я думаю, тебе нужно пойти и прояснить основы.

Pradeep 25.11.2008 20:34

сравнение с истиной (или ложью) совершенно не нужно:

if (!((radButton1.checked == true)&&(radButton2.checked == true))) { ... }

становится

if ( !(radButton1.checked && radButton2.checked) ) { ... }

или в равной степени

if ( !radButton1.checked || !radButton2.checked ) { ... }

вот о чем я думал. И выглядит намного чище

Miles 25.11.2008 20:42

Другие вопросы по теме