Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129

Не работает if

13.12.2022, 19:45. Показов 396. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть if, который не должен продолжать выполнение если ничего не выбрано в ListBox или dateTimePicker.
C#
1
2
3
4
5
6
7
8
if (GroupListSch.SelectedItem != null || GroupListSch.SelectedIndex != -1 || dateTimePicker1.Value.Date.ToString() != null)
            {
                ...
            }
            else
            {
                 return; 
            }
Но почему-то этот if всё равно пропускает выполнение даже, когда в дебаге явно видно, что GroupListSch.SelectedIndex = -1.
В чем причина?
Миниатюры
Не работает if  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2022, 19:45
Ответы с готовыми решениями:

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией Debug, то всё в порядке. При запуске же...

Не работает SATA винт при загрузке ПК, а DVD без винта работает. На другом компе этот же винт работает
Здравствуйте. В системный блоке нем при загрузки Биос пишет: Advanced primary master HDD марка жесткого диска has been detected ...

Не работает клавиатура на ноутбуке, внешняя клавиатура частично не работает, экранная не работает
Добрый день! Не работает клавиатура на ноутбуке, внешняя клавиатура частично не работает, экранная не работает. Результат не могу ввести...

12
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
13.12.2022, 19:57
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
GroupListSch.SelectedIndex = -1
-1 ведь не null, поэтому и пропускает.

Добавлено через 2 минуты
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
||
Наверное надо || заменить на &&
0
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
13.12.2022, 20:54
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
dateTimePicker1.Value.Date.ToString() != null
это всегда true
0
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
13.12.2022, 22:26  [ТС]
I can, nedel, А так с ||, если хотя бы одно из условий совпадёт, то не должно пропускать, а тут как раз совпадает условие GroupListSch.SelectedItem != null ну или (string)GroupListSch.SelectedItem != "".

p.s. там микроошибка ещё была GroupListSch.SelectedIndex != -1, а должно быть GroupListSch.SelectedIndex == -1, но даже после исправления, всё равно пропускает.
0
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
13.12.2022, 22:29
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
то не должно пропускать,
Тебе два умных человека и компилятор говорят, что ты не прав, зачем спорить? Попробуй понять логику.
1
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
13.12.2022, 22:33  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Попробуй понять логику.
Хм, ну может я реально не понял, я понимаю, что || это или, а в логике если хотя бы 1 из условий с или совпадает, то условие выполняется, а с И, чтобы условие выполнилось, должны выполнится все условия.
0
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
13.12.2022, 22:36
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
хотя бы 1 из условий с или совпадает
Так оно и совпадает, поэтому и пропускает.

Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
p.s. там микроошибка ещё была GroupListSch.SelectedIndex != -1, а должно быть GroupListSch.SelectedIndex == -1, но даже после исправления, всё равно пропускает.
А вот здесь ты не прав, первый вариант верный.
0
HF
 Аватар для HF
1316 / 895 / 200
Регистрация: 09.09.2011
Сообщений: 2,691
Записей в блоге: 2
13.12.2022, 22:37
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
Хм, ну может я реально не понял
Если бы вы написали иначе, короче, то и код был бы чище, понятнее и точнее.

C#
1
2
3
4
5
if (GroupListSch.SelectedItem == null || GroupListSch.SelectedIndex == -1 || dateTimePicker1.Value.Date.ToString() == null)
            {
                 return; 
            }
... основной код
1
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
13.12.2022, 22:41

Не по теме:

HF, ну вот, пришёл и всё упростил

0
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
13.12.2022, 22:41  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Так оно и совпадает, поэтому и пропускает.
Так оно же не совпадает, условие выполняется, если к примеру GroupListSch.SelectedItem != null, а в дебаге написано, после того как пропустило, что GroupListSch.SelectedItem null.
Миниатюры
Не работает if  
0
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
13.12.2022, 22:45
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
Так оно же не совпадает
А третье? Оно же не null, там дата
0
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
13.12.2022, 22:51  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
А третье?
Но там ведь || стоит, так что если в третьем и не будет null, то всё равно не должно пропускать. Но на самом деле HF верно сказал, лучше было изначально иначе сделать... Но ведь чисто если даже по логике должно ИЛИ работать же...
0
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
13.12.2022, 23:12
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
если в третьем и не будет null, то всё равно не должно пропускать
Блин, почему не должно то, если условие выполняется?

Добавлено через 2 минуты
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
должно ИЛИ работать же
Оно и работает, одно из условий(третье) выполняется.

Добавлено через 1 минуту
TRUEMETALBOY, утомил Подумай, разберись хорошенько. Пригодится в будущем.

Добавлено через 1 минуту
Как же ты с ксором(исключающее или) разберёшься тогда?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2022, 23:12
Помогаю со студенческими работами здесь

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с недавних пор мышь стала работать через раз....

Не работает монитор комп работает а на мониторе нет изображения что делать ?
У меня компьютер старый давно покупал и мне захотелось проверить включается или нет и тут возникла одна проблема не включается монитор (...

Через sublime text 3 и компилятор g++ работает, посоветовали скачать VS, не работает. Миниатюры
через sublime text 3 и компилятор g++ работает, посоветовали скачать VS, не работает.

Ноутбук работает только с Wi Fi роутера дома, в кафе не работает и везде. Почему?
Подскажите пожалуйста, почему у меня ноутбук с виндой 7, работает вай фай только дома с роутера. А когда я прихожу в кафе или в парк, у...

Надо понять правильно работает код или нет. И работает ли он вообще
Он должен вычислить сумму с точностью эпсилон #include <iostream> using namespace std; int main() {


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru