2012-10-07 115 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