2016-05-09 2 views
1
// declare an array (named numbs) that holds 10 ints 
int[] numbs = new int[10]; 
// write a for loop that loops 10 times and generates a random number between 0 and 100 
for (int i = 0; i < numbs.length; i++) { 
    numbs[i] = (int) (Math.random() * 100 + 1); 
} 
// print the values 
for (int number : numbs) { 
    System.out.println(number); 

    // write a for loop that displays to the screen each random number in the array named numbs 
    for (int i = 0; i < numbs.length; i++) { 
     System.out.println("the random number for element " + i + " is " + numbs[i]); 
    } 
} 

ich meine letzte Ausgabe will nur zehn Zahlen zeigen aber, was ich bekommen ist 10 Zahlen 10 Mal wiederholt, so statt die Zufallszahl für Element 1 1 ist die zufällige 2 Nummer für das Element 2 die Zufallszahl ... usw. bis zehnSchreiben einen Java-Array und immer zu viele Ausgänge

I die Zufallszahl für das Element erhalte 1 1 die Zufallszahl für das Element 2 2 die Zufallszahl ... usw. bis zehn dann geht es zurück auf die oberste Nummer und druckt "die zufällige nu mber für Element 1 ist 1 "wieder und dann" die Zufallszahl für Element 2 ist 2 "wieder

was mache ich falsch?

+2

Sie erhalten genau das, was Sie Java anweisen, dir zu geben. Beobachten Sie die verschachtelten 'for'-Schleifen. –

+1

In der Tat - wenn Sie Ihre IDE Ihren Code für Sie formatieren, wird es viel klarer. –

+0

Warum verwenden Sie mehrere (verschachtelte) For-Schleifen? Es scheint, dass Sie nur die zweite wollten, aber ich kann nicht sagen, ob Sie das Array zweimal drucken möchten. –

Antwort

0

Sie verwenden verschachtelte for-Schleifen. Sie brauchen nur Ihre dritte for-Schleife.

public class FArray { 
    public static void main(String[] args) { 
    int[] numbs = new int[10]; 
    for (int i = 0; i < numbs.length; i++) { 
    numbs[i] = (int) (Math.random() * 100 + 1); 
    } 
    // print the values 
    for (int i=0; i<numbs.length; i++) { 
    System.out.println("the random number for element "+ i +" is "+numbs[i]); 
    } 
} 
} 
0

Sie Abrufen von Daten gedruckt 10mal X 10-mal, weil Sie eine verschachtelte Schleife Ankündigung haben können Sie somthing wie diese

public static void main(String[] args) { 
    // declare an array (named numbs) that holds 10 ints 
    int[] numbs = new int[10]; 
    // write a for loop that loops 10 times and generates a random number 
    // between 0 and 100 
    for (int i = 0; i < numbs.length; i++) { 
     numbs[i] = (int) (Math.random() * 100 + 1); 
    } 

    // write a for loop that displays to the screen each random number in 
    // the array named numbs 
    for (int i = 0; i < numbs.length; i++) { 
     System.out.println("the random number for element " + i + " is " + numbs[i]); 
    } 
} 

}

0

Ich wollte Ich möchte, dass meine letzte Ausgabe nur zehn Zahlen zeigt, aber was ich bekomme, sind 10 Zahlen, die 10 Mal wiederholt werden, also statt der Zufallszahl ber für Element 1 1 ist die Zufallszahl für das Element 2 2 die Zufallszahl ... etc bis zehn

Sie Zeiten Looping, eine for-Schleife ist mehr als ok alle sehen die zufälligen Elemente im Array ... entfernen eine der beiden Schleifen (z. B. Entfernen Sie die for-Schleife erweitert), um zu sehen nur die 10 Zahlen, die Sie erzeugt ..

Beispiel:

public static void main(String[] args) throws ParseException { 
     // declare an array (named numbs) that holds 10 ints 
     int[] numbs = new int[10]; 
     // write a for loop that loops 10 times and generates a random number between 0 and 100 
     for (int i = 0; i < numbs.length; i++) { 
      numbs[i] = (int) (Math.random() * 100 + 1); 
     } 
     // print the values 

     // write a for loop that displays to the screen each random number in the array named numbs 
     for (int i = 0; i < numbs.length; i++) { 
      System.out.println("the random number for element " + i + " is " + numbs[i]); 
     } 
} 
0

Der letzte Teil des Codes:

for (int number : numbs) { 
    System.out.println(number); 
// write a for loop that displays to the screen each random number in the array named numbs 
for (int i = 0; i < numbs.length; i++) { 
    System.out.println("the random number for element " + i + " is " + numbs[i]); 
} 

Sie es sagen das zu tun following: foreach int gespeichert im array numbs, drucke das int, und dann foreach jedes Element numbs [i] mit i = 0..numbers.length-1 drucke diesen Satz.

Sie haben also 10 Elemente in Ihrem Array. Für jedes Element überprüfen Sie erneut alle Positionen des Arrays. Das ist der Grund, warum Sie 10 * 10 Ergebnisse bekommen.

Es würde ausreichen, um die folgende zu schreiben:

for (int i = 0; i < numbs.length; i++) { 
    System.out.println("the random number for element " + i + " is " + numbs[i]); 
    }