2013-10-17 118 views
0

這是一個非常基本的for循環,我試圖設計,但由於某種原因,它只是不工作。我正在做一個方法,將有3個測試分數(整數)的用戶類型。問題是,我需要將3個整數的值保存到一個變量中。For循環持有值

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,因爲我有一個整型測試1 = ...謝謝。

+0

你最好打賭是採取一個整數數組。 –

+0

@ user2888834,逐行檢查你的代碼,你肯定會發現錯誤 – gjman2

回答

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

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 從零開始,你可能想從開始循環。
它推薦給變量一個有意義的名字,而不是test ..考慮將其更改爲values例如..

+0

不要忘記初始化數組('int [] numbers = new int [3];')。 – EboMike

+0

我相信這兩個test1都是在testScore中聲明的;從不作爲集體成員 –

+0

@RichardTingle謝謝,我沒有注意到這一點。 – Maroun

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(動態數組),如果你想保存值的未定義的數字。

1

您正在三次將三個值寫入同一個變量,因此只有最後一個條目會保留。如果您需要將更多值存儲到單個變量中,請使用數組。你也聲明變量新的循環中,因此會隱藏外部一個...

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(); 
} 
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(); 
} 
0

您的循環僅收集每次迭代的單個數據的輸入。

你有兩個選擇:

  • 每次迭代每個變量添加特殊情況下(這是一個維護的噩夢)

  • 正如前面的海報說用適當的尺寸,並與同一索引它的Array變量被驅動for循環:

    Array[i]=kb.nextInt()