Вы перезаписываете results
каждый раз. Как написано, это скажет вам, равен ли последний элемент в массиве 9 (что не имеет), а не равен ли любой элемент в массиве 9.
Вы должны присвоить true
result
, если num[x] == 9
; в противном случае ничего не назначайте.
@ Ответ lucumt показывает пример того, как это сделать. Еще один пример, просто замените
results = (nums[x] == 9);
с
results |= (nums[x] == 9);
, где присваивание |=
эквивалентно results = results || (num[x] == 9);
- другими словами, если любое значение равно true, все выражение будет истинным. (Обратите внимание, что ответ @ lucumt немного более эффективен, потому что это O (n), тогда как это Theta (n) - т.е. это всегда будет выполняться ровно n
раз, где n
- длина список, но @ lucumt's может досрочно завершить цикл, если найдет 9).