这是一个非常基本的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 = ... thanks。
答案 0 :(得分:3)
这就是Java中arrays的原因。
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
。
答案 1 :(得分:3)
据我了解你的问题,你想在变量中保存3个值(你输入的地方) 我认为你应该使用array。
int[] tests = new int[3];
for (int i = 0; i < 3; i++) {
System.out.print("\nPlease enter your test scores: ");
tests[i] = kb.nextInt();
}
如果要保存未定义数量的值,稍后可以使用Lists(动态数组)。
答案 2 :(得分: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();
}
答案 3 :(得分: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();
}
答案 4 :(得分: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
答案 5 :(得分:0)
您的循环仅为每次迭代收集单个数据的输入。
您有两种选择:
每次迭代为每个变量添加特殊情况(这是维护噩梦)
正如之前的海报回复使用适当大小的Array
并使用驱动for循环的相同变量对其进行索引:
Array[i]=kb.nextInt()