2015-12-05 18 views
1

我试图做一个程序来分析数据,但数据量每一次变化。下面是一个例子输出:如何使循环返回一个不同的变量在Java中的每个迭代?

Please enter the sample size: 3 
Enter numbers for Trial 0 
Enter sample #0:50 
Enter sample #1:49 
Enter sample #2:51 
Enter numbers for Trial 1 
Enter sample #0:30 
Enter sample #1:31 
Enter sample #2:32 
Enter numbers for Trial 2 
Enter sample #0:25 
Enter sample #1:26 
Enter sample #2:27 
Enter numbers for Trial 3 
Enter sample #0:15 
Enter sample #1:16 
Enter sample #2:17 
Sample # Trial 1 Trial 2 Trial 3 Trial 4 
0 50 30 25 15 
1 49 31 26 16 
2 51 32 27 17 
------------------------------------------------------- 
Average: 50 31 26 16 
Min Average: 16 
Max Average: 50 
The trials do NOT concur! 

这是代码我目前:

import java.util.Scanner; 

public class DataAnalyze { 
    public static void main(String[] args) { 
     int sample = 0; 
     int avg; 
     int t1 = 0; 
     int t2; 
     int t3; 
     int t4; 
     int val; 
     int max; 
     int min; 

     Scanner input = new Scanner(System. in); 
     System.out.println("Please enter the sample size: "); 
     sample = input.nextInt(); 
     System.out.println("Enter the numbers for Trial 0"); 

     for (int i = 0; i < sample; i++) { 
      System.out.println("Enter sample # " + i + " : "); 
      t1 = input.nextInt(); 

     } 

     System.out.println("\tSample #\tTrial 1\tTrial 2\tTrial 3\tTrial 4"); 
     System.out.println("\t" + (sample - 1) + "\t" + t1); 

    } 
} 

我猜我问我是怎么做的for循环收集输入对于T1第一次各地,T2第二次左右,和T3第三次左右,等,基本上,我该如何改变什么输入的值被分配每次循环迭代?我认为某种数组是最好的方式,但我不会在Java中精通,所以如果你能提供给我,这将是很大的一个例子,谢谢。

+0

了解如何使用[阵列(https://docs.oracle.com/javase /tutorial/java/nutsandbolts/arrays.html)或[收藏](https://docs.oracle.com/javase/tutorial/collections/)来存储数据。 – Jesper

+0

[在Java中获取随机数]可能的重复(http://stackoverflow.com/questions/5887709/getting-random-numbers-in-java) –

回答

0

我想你的意思是说生成唯一的随机数,当你说

使每个它首先将范围迭代

这可以实现时间循环打印出不同的变量然后使用Collections类的shuffle()方法获取唯一编号。

ArrayList<Integer> list = new ArrayList<Integer>(); 
    for (int i=1; i<11; i++) { 
     list.add(new Integer(i)); 
    } 
    Collections.shuffle(list); 
    for (int i=0; i<3; i++) { 
     System.out.println(list.get(i)); 
    } 
0

在Java中,您可以在List类中存储任意数量的对象。通用的ArrayList类可能会适合您的需求。通过例如你会追加数字到当你在阅读列表。

您可以用while循环替换for循环和检查最终ofinput作为一个字符串读入,然后首先检查一个空字符串(用户只是返回),如果不是将字符串转换为int。

我不知道如何使一个不同的变量 每次循环打印出它遍历

我不明白你的意思在这里。你的意思是打印t1的第一遍,然后t2,然后t3等?没有简单的方法来做到这一点,你需要存储那些叔变量阵列中的,并使用从你的循环变量的值来计算的索引来做到这一点,例如:

int t[4] ; 

int i = 0 ; 
while(..) 
{ 
    System.out.println("var = " + t[ i % t.length ]) ; 

    i++ ; 
}; 
+0

基本上我的意思是第一次循环经过,我输入输入对于t1,第二次经过我输入t2等的输入,并且当它结束时,它在同一行上同时打印t1 t2 t3和t4 – Garennnn

+0

这听起来像你需要将t值存储在一个数组(如我举例)。您可以通过使用循环变量模数(%操作)将t数组索引到t数组的大小。 – StephenG

相关问题