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; 
    } 
  }
}
4

3 回答 3

5

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

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

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

如果您可以直接计算最后一次迭代的值而无需运行先前的迭代,则根本没有理由运行循环。

于 2012-10-07T12:31:04.857 回答
0

我不确定您是否要在循环中的某个条件后循环或中断

打破你可以做

 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 do 的值

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);
 }
于 2012-10-07T12:36:56.080 回答
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- 相反,你可以少循环一圈。

于 2012-10-07T12:37:06.530 回答