如何在java中每次迭代创建一个返回不同变量的循环?

时间:2015-12-05 05:57:11

标签: java loops variables for-loop iteration

我正在尝试制作一个分析数据的程序,但每次都会改变数据量。以下是输出示例:

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,所以如果你能给我一个很棒的例子,谢谢。

2 个答案:

答案 0 :(得分:0)

我认为你的意思是说当你说

时生成唯一的随机数
  

每次迭代时,让for循环打印出一个不同的变量

这可以通过首先在列表中添加范围然后使用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));
    }

答案 1 :(得分:0)

在Java中,您可以在List类中存储任意数量的对象。通用的ArrayList类可能适合您的需要。您在阅读时会将数字附加到列表中。

您可以使用while循环替换for循环,并通过以下方式检查输入结束:以字符串形式读入然后首先检查空字符串(用户只需点击返回),如果没有将字符串转换为int。

  

我不知道如何让for循环打印出不同的变量   每次迭代

我不明白你的意思。你的意思是在第一次通过时打印t1,然后是t2,然后是t3,依此类推?没有简单的方法可以做到这一点,你需要例如将这些t变量存储在数组中,并使用根据循环变量值计算的索引来执行此操作,例如:

int t[4] ;

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

    i++ ;
};