Я написал следующую программу для отображения всех простых чисел между 2 и 50 (включительно). Программа работала так, как предполагалось, но когда я пересматривал код, я задавался вопросом, почему он не провалился. Оператор if
может изменять значение переменной isprime
. Однако не изменилось ли это изменение после того, как оставлен внутренний код for
? Это означало бы, что isprime
останется true
, и все номера будут отображаться.Объем Java и время жизни переменной
class Prime {
public static void main (String args []) {
int a, b;
boolean isprime;
for (a = 2; a < 51; a++) {
isprime = true;
for (b = a-1; b > 1; b--) {
if (a % b == 0) isprime = false;
}
if (isprime) System.out.println(a);
}
}
}