Чёто не понимаю (while)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Может конечно я переработал но не понимаю в чем проблема? Думал сначала в типах
char
нельзя использовать&&
(и),||
(или), пробовал с int тоже самое выходит. Может я что то не понимаю в функцииwhile
. Изменил условие наоборот на==
вместо!=
, цикл сразу завершается как и должно быть , если убираю&&
или||
, и оставляю одно условие, все работает как должно быть. Помогите пожалуйста понять в чем же дело, может перетрудился или что то не догоняю?Чтобы выйти из цикла, Data должен быть одновременно равен 'Y' и 'N'.
MasterOfAlteran,
а разве это не знак
||
или? Тогда в чем я ошибся создав такое условие? И тогда как писать такие условия? У меня даже идей нет на этот счет, только если по 1му делать кучу циклов и условий?Оно самое. Дает true, если хотя бы один из операндов равен true.
Пусть пользователь ввел 'Z'. Считаем:
(Data != 'Y') || (Data != 'N') == (true) || (true) == true
Пусть пользователь ввел 'Y'. Считаем:
(Data != 'Y') || (Data != 'N') == (false) || (true) == true
Пусть пользователь ввел 'N'. Считаем:
(Data != 'Y') || (Data != 'N') == (true) || (false) == true
Нужно изучить таблицы истиности и набить руку в этих делах. Через какое-то время всё станет прозрачно.
!((Data == 'Y') || (Data == 'N'))
Пусть пользователь ввел 'Z'. Считаем:
!((Data == 'Y') || (Data == 'N')) == !(false || false) == true
Пусть пользователь ввел 'Y'. Считаем:
!((Data == 'Y') || (Data == 'N')) == !(true || false) == false
Пусть пользователь ввел 'N'. Считаем:
!((Data == 'Y') || (Data == 'N')) == !(false || true) == false
(Data != 'Y') && (Data != 'N')
Пусть пользователь ввел 'Z'. Считаем:
(Data != 'Y') && (Data != 'N') == (true) && (true) == true
Пусть пользователь ввел 'Y'. Считаем:
(Data != 'Y') && (Data != 'N') == (false) && (true) == false
Пусть пользователь ввел 'N'. Считаем:
(Data != 'Y') && (Data != 'N') == (true) && (false) == false
MasterOfAlteran,
спасибо. Вроде понял, попробую потестировать разные варианты чтобы полностью понять логику.