"Location: class java.io.PrintScream" o que siginifica?

9 respostas
P

Galera eu comecei a estudar Java neste semestre na faculdade, pois nunca tinha visto. Mas estou caminhando com meus próprios passos, porém, tem algumas dúvidas bobas que não estou conseguindo achar na net e nos livros. Eu criei esse código agora e gostaria de saber o que quer dizer esse erro.

public static void main(String[] args) {

int x;

int y;

for(int i=0;i<=1000;i++){

if (i % 2==0){

i+=i;

x=i;

if (i % 3==0){

i++;

y=i;

}
}
    }
    System.out.[color=red]println[/color](x,y);// ocorre um erro aqui. Alguma coisa de "Location: class java.io.PrintScream"
}

Alguém pode me ajudar quanto a isso??

Obrigado!!

9 Respostas

B

Você está tentando imprimir x,y? Do jeito que está fazendo, está passando dos parâmetros para o método, o que não existe.

tente passar x +"," + y

P

Bruno, a princípio muito obrigado!!
Antes de vc me responder eu mudei o código mudando algumas linhas, e ficou dessa maneira:

public static void main(String[] args) {
int j;

for(int i=0;i<=1000;i++){
        if (i % 2==0){
            i+=i;
            if (i % 3==0){
                j++;
                
         }
                
        }
    }
    System.out.println([color=red]i[/color]+","+[color=orange]j[/color]); //erro nessa linha
}

Mas agora, informa que a variável j não é usada e i “Cannot find symbol; symbol: variable i; location class provap1.main”
Cara desculpe te pertubar ae, mas é que estou fazendo um trabalho e estou aprendendo agora toda a ajuda é bem vinda.
Obrigado

ViniGodoy

Oi, quando for usar códigos, por favor, coloque-os entre a tag code. Senão muita gente não vai nem ler.
Se não sabe usar esse recurso, leia:
http://www.guj.com.br/posts/list/50115.java

ViniGodoy

Você declarou a variável i dentro do for, então ela só vale para dentro do for (dentro daquelas chaves).

Para resolver isso, declare-a fora do for:

public static void main(String[] args) { int j = 0; int i=0; for(i=0;i<=1000;i++){ if (i % 2==0){ i+=i; if (i % 3==0){ j++; } } } System.out.println(i+","+j); //erro nessa linha }

B

A tua variável i não está declarada no mesmo escopo em que este println é chamado.

packetspy

Ou seja, declare e inicialize as variáveis fora do FOR e no mesmo escopo da impressão como disse nossos amigos nos posts acima =]

P

Galera valeu obrigado!!!

P

Eu consegui resolver o problema dos erros, mas não consegui colocar o método certo e o resultado não dá certo.
Pois eu quero contar de 0 a 1000, somando todos os números pares e contanto os ímpares e múltiplos de 3.

B

Bem, você tem que organizar a tua lógica melhor:

Declare as variáveis com nomes fáceis

int somaNumerosPares = 0;
int qtdeNumerosImparesMultiplosDe3 = 0;

Para iterar de 0 a 1000, use um for, começe de 0 e pare quando o número passar 1000

for (int numero = 0; numero <= 1000; numero++)

Para checar se um número é par, use o resto da divisão por 2(também chamado módulo). Este resto deve ser zero.

if (numero % 2 == 0)

Para checar se um número é múltiplo de 3, o resto da divisão dele por 3 é zero.
Usando o else if aqui, depois da condição acima, significa que ele tentou a expressão acima, e como o resultado deu falso, ele tenta agora esta expressão. Então já está subentendido que o número é impar. É a mesma coisa que (numero % 2 != 0 || numero % 3 == 0).

else if (numero % 3 == 0)

Para somar os número pares a outro, use

somaNumerosPares = somaNumerosPares + numero; // que é a mesma coisa que escrever: somaNumerosPares += numero;

Para incrementar a quantidade de números impares multiplos de 3, use:

qtdeNumerosImparesEMultiplosDe3 = qtdeNumerosImparesEMultiplosDe3 + 1; // que é a mesma coisa que escrever: qtdeNumerosImparesEMultiplosDe3++;

Monte o teu algorítmo, declare as variáveis primeiro, depois o for, os ifs, e o que ele deve fazer. Ao final, fora do for, imprima os valores das variáveis.

Bons estudos!

Criado 2 de outubro de 2009
Ultima resposta 2 de out. de 2009
Respostas 9
Participantes 4