Вы также можете изменить метод как статический:
class Handler {
public static function helloWorld() {
echo "Hello world!";
}
}
Причина, по которой ответ 0
, заключается в том, что while False
означает, что тело цикла не будет выполняться даже один раз, а поскольку значение total3
увеличивается только в цикле тела, его значение будет оставаться таким же, как и до цикла, который равен 0
из-за линии total3=0
над ним.
Чтобы тело цикла могло выполнить значение выражения после while
, должно быть истинно . Наиболее распространенным истинным значением является True
.
Цикл while оценивает условие и выполняет код в своем блоке, когда условие оценивается как True
, в противном случае он выходит из цикла. Условие True
заставляет цикл продолжаться бесконечно, поскольку он может только когда-либо принимать значение True, в то время как False
заставляет цикл немедленно завершать работу без выполнения кода в своем блоке.
Я знаю, что это только пример того, как использовать цикл while, однако, если бы это был реальный вариант использования, вы бы хотели вместо этого использовать цикл for.
given_list2 = [5, 4, 4, 3, 1, -2, -3, -5]
total3 = 0
for n in given_list2:
if n > 0:
total3 += n
else:
break
print(total3)
или даже
total3 = sum(n for n in given_list2 if n > 0)
Истина и Ложь являются логическими значениями. То есть их значения известны и задаются языком. Представьте, что у вас есть что-то вроде:
while 1 < 2:
«1» и «2» - целочисленные литеральные значения. Выражение никогда не меняется, результаты всегда будут одинаковыми. В этом случае результатом является логическое значение, равное True
.
Таким образом, цикл while, который имеет «True» или любое неизменное истинное выражение, такое как 1 < 2
, в качестве условия, будет хотеть запустить «навсегда», потому что он никогда не провалит этот тест. Единственный способ остановить такой цикл - это сгенерировать исключение клавиатуры (обычно нажатием клавиши «Ctrl-C»), или создать где-то неперехваченное исключение внутри кода, или заставить какой-то фрагмент кода выполнить оператор break
. [+1112]
В вашем примере вы складываете числа в given_list2
и останавливаетесь (выполняя break
), когда встречаете отрицательное число. Таким образом, положительные числа суммируются, что составляет 17.
Аналогично, цикл while
, который имеет «False» или любое неизменное ложное выражение в качестве условия, никогда не будет выполняться, потому что самый первый тест while 1 > 2
завершится неудачно, и цикл будет прервать. Это приводит к тому, что внутренний код не выполняется.
В вашем примере вы начинаете с total3 = 0
и никогда не запускаете какой-либо код, поэтому он остается равным 0.