Согласно вашему коду:
String[] name = {"tom", "dick", "harry"};
for(int i = 0; i<=name.length; i++) {
System.out.print(name[i] +'\n');
}
Если вы проверите System.out.print (name.length),
, вы получите 3;
, что означает, что длина вашего имени равна 3
, ваш цикл работает от 0 до 3, который должен работать либо от «0 до 2», либо от «1 до 3»
Ответ
String[] name = {"tom", "dick", "harry"};
for(int i = 0; i<name.length; i++) {
System.out.print(name[i] +'\n');
}
Кажется, что код работает так, как задумано, первая печать ложна, поскольку левое выражение (красный + зеленый) соответствует правому выражению (фиолетовый [красный + зеленый] + 0).
Поскольку вы проверили, отличаются ли они (используя! = Между двумя выражениями), вы получили False.
Я думаю, вы запутали способ проверки условий питоном. Когда вы используете операнд сравнения, python сначала оценивает обе стороны операнда, а затем сравнивает обе стороны.
Вы написали «Как зеленый! = Фиолетовый также дает результат True», но фактическое сравнение - «(красный + зеленый)! = Фиолетовый».
Вы ошибаетесь в правилах приоритета оператора . По существу, выражение оценивается следующим образом:
red + green != purple + purple / purple - red % green
= 44 + 43 != 87 + 87 / 87 - 44 % 43 # substitution
= 87 != 87 + 1 - 1 # perform / and % first
= 87 != 87 # sum
= False # not equal
Что касается второго, red + True + 0.0
, True
повышается до 1
, а сумма возвращается 45
, затем добавляется 0.0
] продвигает int в число float.