comparaçao de valores em java

7 respostas
C

Pessoal ta va aplicando em java o que eu tinha de exercicios em algoritmo
mas não tá dando certo o for…

da uma conferida ae
o que tá dando erro?

public class logic { int[] valor = new int[3]; int maior; public void entra(){ for(int i =0; i >=3; i++){ String a = JOptionPane.showInputDialog("valor?"); valor[i] = new Integer(a); } } public void logica(){ for(int i=0; i>=3; i++){ if(valor[i] > valor[i+1]){ maior=valor[i]; } } } public void mostra(){ System.out.println(maior); } }

7 Respostas

adriano.ferranti

As linhas

for(int i =0; i >=3; i++){

não deveriam ser

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

???

T

Um array de int definido como int[3] tem apenas os seguintes elementos:
[0], [1] e [2].

Portanto seu loop vai dar problemas mesmo.

Corrija seu primeiro loop para:

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

Seu segundo loop eu não entendi o que você quer fazer. Quer achar o maior valor no array?

peczenyj

Por via das duvidas, use PPADD - passei por aqui driven development

coloque varios System.out.println("passei por aqui -- linha tal, codigo tal, dentro do if, fora do laço, na atmosfera, etc"); pelo codigo e veja por onde ele passa.

Quando se cansar pode aprender a usar um debugger de verdade.

C

uhmm…
é mesmo agora que percebi :smiley:
sim é só pra ver o maior…

to aprendendo agora java =x meio complicado :slight_smile:

brigadão galera!

C

peczenyj:
Por via das duvidas, use PPADD - passei por aqui driven development

coloque varios System.out.println("passei por aqui -- linha tal, codigo tal, dentro do if, fora do laço, na atmosfera, etc"); pelo codigo e veja por onde ele passa.

Quando se cansar pode aprender a usar um debugger de verdade.

PPADD?
aushauhsaausa ok vo usar isso =)
Valeu :slight_smile:

C

e quanto á:

public void logica(){ for(int i=0; i<=3; i++){ if(valor[i] > valor[i+1]){ maior=valor[i]; }

não está dando certo…
pode mesmo fazer isso?
ou tem alguma outra maneira de encontrar valores no java?

T

Se você quiser achar o maior valor no array (estou supondo que seja isso; é que o nome que você deu ao método é totalmente inadequado - você poderia pôr um nome mais descritivo, como "acharMaior" ou coisa parecida), o correto é escrever algo como:

public void logica () {
    maior = valor [0];
    for (int i = 1; i < 3; i++) {
        if (valor [i] > maior) {
            maior = valor [i];
        }
    }
}
Criado 5 de fevereiro de 2009
Ultima resposta 5 de fev. de 2009
Respostas 7
Participantes 4