0

这是我正在尝试设计的一个非常基本的for循环,但由于某种原因,它不起作用。我正在制作一种让用户输入 3 个测试分数(整数)的方法。问题是我需要将 3 个整数的值保存到一个变量中。

public static int testScore()

{    //starts method

int test1;
int test2;
int test3;
int i;

test1=0
for (i=1; i < 3; i++)
{    //starts for loop
System.out.print("\nPlease enter your test scores: ";
int test1=kb.nextInt();
}   //end for loop

忽略我可能遇到的任何语法错误(草稿),这会将我生成的 3 个值保存到 test1、2 和 3,还是只测试 1,因为我有 int test1=... 谢谢。

4

6 回答 6

3

据我了解您的问题,您想在变量中保存 3 个值(您在某处输入)。
我认为您应该为此使用数组

int[] tests = new int[3];

for (int i = 0; i < 3; i++) {    
    System.out.print("\nPlease enter your test scores: ");
    tests[i] = kb.nextInt();
} 

稍后,如果您想保存未定义数量的值,您可以使用列表(动态数组)。

于 2013-10-17T07:19:41.243 回答
3

这就是Java中有数组的原因。

int[] test = new int[3];
System.out.print("\nPlease enter your test scores: ";
for (i=0; i < 3; i++) {    
    test[i] = kb.nextInt();
} 

你声明test1了两次——一次在循环范围内testScore,一次在循环范围内,这不好。

另请注意,数组在 Java 中是从零开始的,您可能希望从0开始循环。
建议给变量一个有意义的名称,而不是test..考虑将其更改values为例如..

于 2013-10-17T07:18:05.180 回答
1

您将三个值写入同一个变量三次,因此只有最后一个条目会保留。如果您需要将更多值存储到单个变量中,请使用数组。此外,您正在循环内声明变量 new ,因此它将隐藏外部变量...

int[] store = new int[3]
for (int i=0; i < 3; i++)
{    //starts for loop
     System.out.print("\nPlease enter your test scores: ";
     store[i]=kb.nextInt();
}
于 2013-10-17T07:20:03.890 回答
0

使用数组而不是单个变量

Integer[] test_array = new Integer[3];
for (i=1; i < 3; i++) 
{    
    System.out.print("\nPlease enter your test scores: ";
    test_array[i] = kb.nextInt();
} 
于 2013-10-17T07:20:29.743 回答
0

最好的方法是使用数组。但是你仍然想不用数组:

System.out.print("\nPlease enter your test1 scores: ");
int test1=kb.nextInt();

System.out.print("\nPlease enter your test2 scores: ");
int test2=kb.nextInt();

System.out.print("\nPlease enter your test3 scores: ");
int test3=kb.nextInt();

但我强烈建议使用数组。通过此链接学习数组 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

于 2013-10-17T07:27:12.497 回答
0

您的循环每次迭代仅收集单个数据的输入。

你有两个选择:

  • 每次迭代为每个变量添加特殊情况(这是维护的噩梦)

  • 正如较早的海报所回答的那样,使用Array适当大小的并使用驱动 for 循环的相同变量对其进行索引:

    Array[i]=kb.nextInt()

于 2013-10-17T07:28:03.623 回答