2017-05-15 6 views
0

私はまだJavaを学んでいて、まだいくつかの反復技術に精通していません。この配列int [] lst = {34、23、7、14、10}を反復して、配列の各要素間に乱数を生成する必要があります。例えば。それは34と23,23と7,7と14、そして14と10の間のランダムな値をリストすることができなければなりません。 私は昨夜から朝までそれを仕事してきたので、ひどく助けてください。私のひどいコードが下に貼り付けられます。配列のint要素のランダムな整数

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

2つの重要な事は考慮すること。 '[i]'と '[i + 1]'が必要な場合は、 'lst.length - 1'にループします。乱数の場合は、最初の要素に追加された2つの要素の差の数値が必要になります。 – KevinO

+0

各範囲にはいくつの値がありますか? –

+0

@KevinO正しいですが、彼のコードのどこにでもlst [i + 1]はありません – JackVanier

答えて

1

これを試してみてください:

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

ありがとうございましたが、itiは機能しませんでした。 「スレッド内の例外」メイン "java.lang.Error:未解決のコンパイルの問題: \t at SumNum.main(ArrayRange.java:6) – Isan

+0

ごめんなさい、ありがとうその後のアイディア – Isan

+0

上記のコードはうまく動作し、自分のシステムでテストしました – slal

関連する問題