2011-09-28 40 views
0

我在循環內部做了一些計算,當我在循環內部打印值時,我得到了期望值 現在,我還需要這些值在循環外部可用,最新的價值。java:獲得循環外部的計算值

例如:

String[][] matrix = { { "1", "2", "3" } }; 

    String[] y= { "TEST" ,"BUG"}; 
    int a = 0; 
    for (int i = 0; i < y; i++) 
    { 

     for (int j = 1; j < 4; j++) 
     { 

     int value = Integer.parseInt(matrix[i][j - 1]); 

     System.out.println(value); //this is OK it print me 3 values 
     } 
    } 
System.out.println(value); //it print me only third value 

我想該值1,2,3也將提供外循環

+0

什麼是「我

回答

1

如果您想訪問所有三個變量。你必須聲明一個包含所有值的數據結構。

例如

String[][] matrix = { { "1", "2", "3" } }; 
List<Integer> list = new ArrayList(); 
    String[] y= { "TEST" ,"BUG"}; 
    int a = 0; 
    int value; 
    for (int i = 0; i < y; i++) 
    { 

     for (int j = 1; j < 4; j++) 
     { 

     value = Integer.parseInt(matrix[i][j - 1]); 
     list.add(value); 
     System.out.println(value); //this is OK it print me 3 values 
     } 
    } 
System.out.println(value); 
1

聲明你的循環變量value外:

String[][] matrix = { { "1", "2", "3" } }; 

    String[] y= { "TEST" ,"BUG"}; 
    int a = 0; 
    int value = 0; 
    for (int i = 0; i < y; i++) 
    { 

     for (int j = 1; j < 4; j++) 
     { 

     value = Integer.parseInt(matrix[i][j - 1]); 

     System.out.println(value); //this is OK it print me 3 values 
     } 
    } 
System.out.println(value); 

但是如果你需要全部三個可用的值,你應該使用數組或像ArrayList這樣的其他容器:

String[][] matrix = { { "1", "2", "3" } }; 

    String[] y= { "TEST" ,"BUG"}; 
    int a = 0; 
    Arraylist<Integer> values = new Arraylist<Integer>(); 
    for (int i = 0; i < y; i++) 
    { 

     for (int j = 1; j < 4; j++) 
     { 

     values.add(Integer.parseInt(matrix[i][j - 1])); 

     System.out.println(values); //this is OK it print me 3 values 
     } 
    } 
System.out.println(values); 
+0

您需要指定一個初始值,否則它不會被明確分配。 –

+0

是的,我糾正它,謝謝 – Headshota

0

你必須在你的代碼之上聲明你的變量(你想在for循環之外使用)。 示例:

for (...) { 
    //only valid in this for loop 
    int i = 1; 
} 

//valid also after this for loop 
int i = 1; 
for (...) { 

}