2017-05-15 13 views
0

Bitte Jungs, ich lerne immer noch Java und nicht vertraut mit einigen seiner Iterationstechniken noch. Ich möchte das Array int [] lst = {34, 23, 7, 14, 10} durchlaufen, so dass es Zufallszahlen zwischen den einzelnen Elementen im Array erzeugen muss. Z.B. Es muss in der Lage sein, zufällige Werte zwischen 34 und 23, 23 und 7, 7 und 14 sowie 14 und 10 aufzulisten. Bitte, ich brauche dringend Hilfe, da ich seit der letzten Nacht bis zum Morgen für sie gearbeitet habe. Mein schrecklicher Code ist unten eingefügt.Zufällige Ganzzahlen von int Elementen in Array

public class ArrayRange { 


    public static void main(String[] args) { 

     Random rand = new Random(); 

     int[] lst = {34, 23, 7, 14, 10}; 
     for(int i = 0; i < lst.length; i++){ 
      if (i == 0){ 
       int result = rand.nextInt(lst[i])+1; 
       System.out.println(result); 
      } 
      else { 
       int max = lst.length - 1; 
       System.out.println(rand.nextInt(max - lst[i])+ 1); 
      } 
     } 
    } 
} 
+0

Zwei wichtige Dinge zu beachten. Wenn du '[i]' und '[i + 1]' willst, dann wiederhole 'lst.length - 1'. Für die Zufallszahl möchten Sie eine Zahl im Unterschied zwischen zwei Elementen, die der ersten hinzugefügt werden. – KevinO

+0

Wie viele Werte in jedem Bereich? –

+0

@KevinO Sie sind richtig, aber er hat nicht 'lst [i + 1] 'irgendwo in seinem Code – JackVanier

Antwort

1

Versuchen Sie folgendes:

public class ArrayRange { 

    public static void main(String[] args) { 

     Random rand = new Random(); 

     int[] lst = {34, 23, 7, 14, 10}; 
     for(int i = 0; i < lst.length-1; i++){ 
      int val = rand.nextInt(Math.max(lst[i], lst[i+1]) - Math.min(lst[i], lst[i+1])) + Math.min(lst[i], lst[i+1]); 
      System.out.println("(" + lst[i] + ", " + lst[i+1] + "):" + val); 
     } 
    } 
} 
+0

Danke, aber es hat nicht funktioniert. Es zeigt den Fehler "Ausnahme im Thread" main "java.lang.Error: Ungelöste Kompilierung Problem: \t bei SumNum.main (ArrayRange.java:6) – Isan

+0

Tut mir leid!, Vielen Dank, Es gibt mir die Idee danach – Isan

+0

der obige Code funktioniert gut, ich habe es auf meinem System getestet – slal

Verwandte Themen