Дан одномерный массив типа char a[i]
, где i
- номер элемента. Необходимо, чтобы был осуществлен выход из цикла while
:
while (!(a[i] == 48) || !(a[i] == 49))
i++;
while (a[i] != 48) || a[i] != 49))
i++;
Пытался так пробовать - не работает. То бишь, когда код символа равен 48
или 49
должен произойти выход из цикла, а этого не происходит. Что не так?
Условие "когда x равно 48 или 49" (или, более математично, "когда x равно 48 или когда x равно 49") выглядит так:
(x == 48) || (x == 49)
Можно и без скобок, но я оставил для наглядности.
Значит, продолжать цикл, если условие НЕ выполнено, т.е.
while(!((x == 48) || (x == 49)))
Если применить НЕ к А ИЛИ Б, то это - НЕ А И НЕ Б - т.е. второй вариант
while(!(x == 48) && !(x == 49))
или, что то же самое
while((x != 48) && (x != 49))
Т.е. работать, пока код - и не 48, и не 49...
Думаю, проблем подставить вместо x
- a[i]
проблемы не составит?
while (!(a[i] == 48) || !(a[i] == 49))
означает, что если один из двух условий верно, то продолжить цикл. Как не крути, то элемент не может быть равен одновременно и 48 и 49, поэтому одно из двух условий всегда верно, и цикл продолжается.
while (a[i] != 48) || a[i] != 49))
, если тут скобки поставить правильно и написать
while ((a[i] != 48) || (a[i] != 49))
, то это тоже самое, что и первый вариант.
Правильный ответ уже изложил вам Harry
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В конструктор класса QPushButton можно передать строкуЕсли я напишу так, то всё будет хорошо: QPushButton *button = new QPushButton("text"), но я не хочу создавать указатель,...
Подключаю функционал джойстрика как описано в документации по Qt: http://docqt
как все таки верно передать массив в функцию написано типа так: func(int a, int b, int w[], int i) где i это размер массива, но так не работает почему тоу меня...