Escopo Java e tempo de vida da variável
Escrevi o programa a seguir para exibir todos os números primos entre 2 e 50 (inclusive). O programa foi executado conforme planejado, mas quando eu reexaminei o código, fiquei imaginando por que não havia falhado. oif
A instrução pode alterar o valor doisprime
variável. No entanto, essa mudança não será esquecida quando o interiorfor
o bloco de código {} foi deixado? Isso significaria queisprime
permaneceriatrue
e todos os números seriam exibidos.
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);
}
}
}