Sou nova aqui e não sei como funciona, então se eu estou fazendo errado, desculpa.
Bem o problema é que um professor meu pediu pra fazer esse exercício:
Escreva um programa que cadastre em uma lista numérica de valores inteiros 10 números inteiros aleatórios entre 10 e 100. Ao final, o programa deverá detectar na lista qual o maior número inteiro sorteado e mostrá-lo ao usuário.
Não sei o por que está repedindo quando mostra na tela, por favor alguém poderia me ajudar?
Estás a adicionar sempre o mesmo número! Vou explicar o teu código:
int k = l.nextInt(100+1); // obtem um numero aleatório
int maior = 10;
for(int a = 10; a != 100; a++){ //percorre o ciclo 90 vezes (sempre que a != 100)
numero.add(k); // adiciona o k gerado lá em cima
}
Penso que queiras rever este for para gerar adicionar só 10 números e não 90 e passar a geração de k para dentro do for para teres sempre números diferentes.
Você está adicionando o mesmo número gerado aleatoriamente noventa vezes na lista numero.
int k = l.nextInt(101); // Digamos que gerou o número 10;
for (int a = 10; a != 100; a++) {
numero.add(k); // Vai adicionar o número 10 noventa vezes.
}
Para resolver isso você deveria colocar a variável k dentro do laço for.
for (int a = 10; a != 100; a++) {
int k = l.nextInt(101);
numero.add(k);
}
Mas mesmo assim o código continuaria errado, pois o exercício pede para você gerar dez valores aleatórios, não noventa, então refatore o código para que gere apenas os dez números.
Para quem quer o código:
import java.util.ArrayList;
import java.util.Random;
class Main {
public static void main(String[] args) {
ArrayList <Integer> numero = new ArrayList<>();
Random l = new Random();
int maior = 10;
for (int a = 0; a != 10; a++) {
int k = l.nextInt( 90 )+ 10;
numero.add(k);
}
for(int m = 0; m < 10; m++){
System.out.println("Número: " + numero.get(m));
}
for(int i = 0; i < numero.size(); i++){
if(numero.get(i) > maior){
maior = numero.get(i);
}
}
System.out.println("O maior número sorteado é: " + maior);