Newsgroup: it.comp.java
Titolo: generare numeri casuali e controllare doppi

Ciao a tutti, premetto che con Java sono alle prime armi. Sto svolgendo 
questo esercizio:
Estrarre 100 numeri casuali tra 1 e 90. Scrivere a video se il lancio 
attuale è uguale a quello precedente.
Questa è la mia soluzione:
import java.util.*;
public class esercizio8
{
 public static void main(String[] args)
 {
    int numero=0,copia=0;
    Random Casuale=new Random(); //creo oggetto di tipo random e nome 
casuale
    for(int i=0;i<100;i++)
    {
     numero=Casuale.nextInt(90)+1; //assegno a numero il valore ritornato 
dal metodo nextInt dell'oggetto Casuale
     System.out.println("\n\n"+numero);
     if(copia==numero) System.out.println("\n\nlancio uguale al 
precedente");
     copia=numero;
    }
 }
}
Potete dirmi se i commenti che ho inserito nel codice sono corretti?  Per 
come ho impostato la generazione dei numeri dovrei ottenere valori da 0 a 
90, mentre l'esercizio li richiede tra 1 e 90. Come posso fare per partire 
da 1? Grazie in anticipo.

 da 1? Grazie in anticipo.
Ti ho formattato il programmino aggiustando i commenti:
-----
package org.wikijava.basic;
import java.util.Random;
/**
 * Scrive 100 numeri casuali e segnala quando ne capitano due
consecutivi uguali
 *
 * @author Dragonet
 */
public class Esercizio8 {
    /**
     * esegue Esercizio8
     *
     * @param args
     *            nessun argomento a linea di comando richiesto o
gestito.
     */
    public static void main(String[] args) {
	int precedente = 0;
	// creo oggetto di tipo random e nome casuale
	Random casuale = new Random();
	for (int i = 0; i < 100; i++) {
	    // assegno a numero il valore ritornato Dal metodo nextInt
	    // dell'oggetto Casuale
	    int corrente = casuale.nextInt(90) + 1;
	    System.out.println(corrente);
	    if (precedente == corrente) {
		System.out.println("lancio uguale al precedente");
	    }
	    precedente = corrente;
	}
    }
}
------
nota che ho riformattato tutto il codice facendo in modo che nessuna
riga fosse più lunga di 80 caratteri, in questo modo eviti di forzare
chi legge a fare scrolling laterale e migliori di molto la leggibilità
del codice.
Ho eliminato i commenti di fine riga, trovo più leggibile scrivere il
commento prima del comando e inoltre tengo le righe corte.
Ho aggiunto un po di Apidoc, in modo che se dovessi usare qualche Ide
(per esempio Eclipse) lascia il mouse sopra il nome della casse e
vedrai una box che spiega cosa fa la classe.
Ho aggiunto la dichiarazione del package, è buona norma non usare il
package di default.
ho eliminato la doppia instanziazione dell'int. riduce la leggibilità,
e inoltre una delle due variabili non era necessaria in quel punto,
poteva benissimo avere scope solo dentro il for.
ho cambiato il nome delle variabili, verso nomi con più significato.
Ho tolto le andate a capo nei println (questo è ovviamente
facoltativo, gusto personale... )
Per ottenere i numeri casuali tra 1 e 90 devi fare esattamente come
avevi fatto. La apidoc di nextInt lo spiega chiaramente:
"Returns a pseudorandom, uniformly distributed int value between 0
(inclusive) and the specified value (exclusive)"
Quindi: Casuale.nextInt(90) restituisce un numero tra 0 e 89 ci
aggiungi 1 e hai un numero tra 1 e 90. ..
Ho cambiato le maiuscole, secondo le convenzioni i nomi delle classi
devono iniziare con maiuscola, mentre i nomi dei metodi e delle
variabili con minuscola.
un saluto,
Giulio
http://www.wikijava.org/

Grazie per i preziosi suggerimenti.
