循环中的返回值

时间:2012-10-07 12:28:19

标签: java

如何在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; 
    } 
  }
}

3 个答案:

答案 0 :(得分:4)

最简单的方法是等待循环完成,然后返回它产生的最后一个值。

您需要等待循环计算所有三个结果的唯一有效原因是计算取决于循环的先前迭代计算的值。在这种情况下,您可以采用以下方法:

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

如果您可以在不运行previos迭代的情况下直接计算最后一次迭代的值,则根本没有理由运行循环。

答案 1 :(得分: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 + "");

然后在循环外可以访问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);
 }

答案 2 :(得分: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 - 相反,你可以只循环一轮。