2012-10-07 114 views
1

如何返回for循環中的值?例如,如果我有一個循環給我3個數字:1,2,3 ...我怎樣才能返回最後一個數字的值(這裏是3)?循環中的返回值

public class Cod { 
    public static void main(String[] args) { 
    exp(); 
    } 
    public static int exp() { 
    int x=10; 
    for (int i=1; i<=3;i++) { 
     x=x*10; 
     int y=x/10; 
     System.out.println(y); 
     return y; 
    } 
    } 
} 

回答

0

如果我明白你正在嘗試做,這裏是你的修改示例:

public class Cod { 
    public static void main(String[] args) { 
    System.out.println(exp()); 
    } 
    public static int exp() { 
    int x=10; 
    for (int i=1; i<=3;i++) { 
     x=x*10; 
    } 
    int y=x/10; 
    return y; 
    } 
} 

我不明白你爲什麼做x/10 - 相反,你可以循環少一圈。

+0

Cod.java:12:error:unreachable statement System.out.println(y); ^ Cod.java:13:錯誤:缺少返回語句 } ^ 2錯誤 –

+0

編譯在我的機器上。你想要編譯什麼代碼? –

+0

還是你的意思是你的原始示例不能編譯?它在方法結尾的for循環之後缺少'return 0;'或類似的東西。 –

4

最簡單的是等待循環結束,然後返回它生成的最後一個值。

爲什麼需要等待循環計算所有三個結果的唯一有效原因是計算取決於循環的先前迭代計算的值。在這種情況下,這裏是你如何能做到這一點:

int res = 0; 
for (int i = 0 ; i != 3 ; i++) { 
    res = calculateResult(i, res); 
} 
return res; 

在情況下,你可以計算出最後一次迭代的值的情況下直接運行previos迭代,沒有理由在所有運行的循環。

0

我不知道,如果你想循環或循環

break一定條件後,打破你可以做

public static int exp() { 
    int x=10; 
    int y = 0; 
    for (int i=1; i<=3;i++) { 
    x=x*10; 
    y=x/10; 
    System.out.println(y); 
    break; 
    } 
} 

這將打破馬上所以它只會循環一次。此時y的值可以訪問。

如果你想在櫃檯變量的值,然後聲明該循環

int i = 1; 
    for (i = 1; i<=3;i++) { 
    x=x*10; 
    y=x/10; 
    ... 
    } 

    System.out.println(i + ""); 

之外,那麼我的值在循環外部訪問。

編輯:評論後

得到y的值做

public static int exp() { 
    int x=10; 
    int y = 0; 
    for (int i=1; i<=3;i++) { 
    x *= 10; 
    y = y + (x/10); 
    } 
    System.out.println("y value after loop is "+ y); 
} 

,或者如果y不被添加到

public static int exp() { 
    int x=10; 

    for (int i=1; i<=3;i++) { 
    x *= 10; 
    } 
    int y = x/10; 
    System.out.println("y value after loop is "+ y); 
} 
+0

我不想要計數器變量的值,我想要y –

+0

@KévìnMolotov的值請參閱編輯。通過在循環外聲明y可以得到它 – RNJ