[Resolvido]Duvida com Loop

Olá pessoal, tenho o seguinte:

[code]import javax.swing.JOptionPane;

public class Array2 {

public static void main(String[] args) {

	Integer notas[] = new Integer[5];
	int maior = 0;
	
	int menor = Integer.MAX_VALUE;
	int notaFinal = 0;

	notas[0] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
	notas[1] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
	notas[2] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
	notas[3] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
	notas[4] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
	
	for (int i = 0; i < notas.length; i++) {

		if (notas[i] < menor) {
			menor = notas[i];
		}

		if (notas[i] > maior) {
			maior = notas[i];
		}

		notaFinal = notaFinal + notas[i];
					

	}
	JOptionPane.showMessageDialog(null, "Soma das notas desprezando a maior e a menor nota: " + (notaFinal-menor-maior));
	JOptionPane.showMessageDialog(null,
			"Menor nota: " + menor);
	JOptionPane.showMessageDialog(null,
			"Maior nota: " + maior);
}

}[/code]

E tenho uma duvida, se eu quiser usar um loop nesse JOptionPane, para eu não ter que digitar os 6 JOptionPane, como eu poderia usar o loop.
Pois por exemplo, se a pessoa tivesse que digitar 30 numeros, eu teria que fazer 30 JOptionPane, para receber cada numero, isso ficaria estranho.

Queria uma luz de como usar eese loop.

Valeu :slight_smile:

[code]
import javax.swing.JOptionPane;

public class Array2 {

public static void main(String[] args) {

	Integer notas[] = new Integer[5];
	int maior = 0;
	
	int menor = Integer.MAX_VALUE;
	int notaFinal = 0;
	
	for (int i = 0; i < notas.length; i++) {
		notas[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
		if (notas[i] < menor) {
			menor = notas[i];
		}

		if (notas[i] > maior) {
			maior = notas[i];
		}

		notaFinal = notaFinal + notas[i];
	}
	JOptionPane.showMessageDialog(null, "Soma das notas desprezando a maior e a menor nota: " + (notaFinal-menor-maior));
	JOptionPane.showMessageDialog(null,
			"Menor nota: " + menor);
	JOptionPane.showMessageDialog(null,
			"Maior nota: " + maior);
}

}[/code]

[quote=ViniGodoy][code]
import javax.swing.JOptionPane;

public class Array2 {

public static void main(String[] args) {

	Integer notas[] = new Integer[5];
	int maior = 0;
	
	int menor = Integer.MAX_VALUE;
	int notaFinal = 0;
	
	for (int i = 0; i < notas.length; i++) {
		notas[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota"));
		if (notas[i] < menor) {
			menor = notas[i];
		}

		if (notas[i] > maior) {
			maior = notas[i];
		}

		notaFinal = notaFinal + notas[i];
	}
	JOptionPane.showMessageDialog(null, "Soma das notas desprezando a maior e a menor nota: " + (notaFinal-menor-maior));
	JOptionPane.showMessageDialog(null,
			"Menor nota: " + menor);
	JOptionPane.showMessageDialog(null,
			"Maior nota: " + maior);
}

}[/code][/quote]

Viny, então é só você passar que notas[i] (i significa linha, não é?) vai receber o JOptionPane então?

Valeu

Dentro daquele for, i é o índice da nota que está sendo lida. O for varia de 0 até 4.

Olá Lucas,

i é o índice (posição, sendo zero a primeira) do teu array.

Hmm, entendo, só uma duvida que tenho, por exemlo se eu quizesse por por exemplo:

JOptionPane.showInputDialog("Digite a primeira nota"); JOptionPane.showInputDialog("Digite a segunda nota");

E assim por diante até chegar a 5ª nota.

Teria que fazer colocando JOptionPane por JOptionPane, pois o loop não me permite por exemplo só mudar a segunda palavra da mensagem.

Valeu.

Amigo, colocar as palavras “primeiro”, “segundo”, etc seria complicado.

Mas “1a.”, “2a.”, etc é fácil.

JOptionPane.showInputDialog("Digite a "+(i+1)+"a. nota"); 

[quote=jyoshiriro]Amigo, colocar as palavras “primeiro”, “segundo”, etc seria complicado.

Mas “1a.”, “2a.”, etc é fácil.

JOptionPane.showInputDialog("Digite a "+(i+1)+"a. nota"); 

[/quote]

É eu fiz isso Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a nota n° " +(i+1)));

Só tinha duvida mesmo quanto as palavras, mais ja que é meio complicado :frowning:

Mais valeu :smiley:

Crie um array contendo as cinco palavras:

final String[] palavras = new String[ 5 ];
palavras[0] = "primeiro";
palavras[1] = "segundo";
palavras[2] = "terceiro";
palavras[3] = "quarto";
palavras[4] = "quinto";

No loop, você irá acessando cada posição do array.

É uma alternativa!

[quote=Eder Peixoto]Crie um array contendo as cinco palavras:

final String[] palavras = new String[ 5 ];
palavras[0] = "primeiro";
palavras[1] = "segundo";
palavras[2] = "terceiro";
palavras[3] = "quarto";
palavras[4] = "quinto";

No loop, você irá acessando cada posição do array.

É uma alternativa![/quote]

Valeu cara, deu certo.

Ficou assim :

[code]final String[] palavras = new String[ 5 ];
palavras[0] = “primeira”;
palavras[1] = “segunda”;
palavras[2] = “terceira”;
palavras[3] = “quarta”;
palavras[4] = “quinta”;

	for (int i = 0; i < notas.length; i++) {
		notas[i] = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a "+ palavras[i]+" nota"));[/code]

E pelo que eu entendi esse final antes de String, não permite que seja alterado, certo?

O uso de final para variáveis não primitivas significa que após informada uma referência, essa não poderá ser alterada.