1

How can I return value in a for loop ? For example if I have a loop that give me 3 numbers: 1,2,3... How can I return the value of the last number (here it is 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

最も簡単な方法は、ループが終了するのを待ってから、生成された最後の値を返すことです。

ループが 3 つの結果すべてを計算するのを待つ必要がある唯一の正当な理由は、計算がループの前の反復によって計算された値に依存することです。この場合、次の方法で実行できます。

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

これはすぐに壊れるので、ループは 1 回だけです。この時点で 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);
 }
于 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-代わりに、ループを1回少なくすることができます。

于 2012-10-07T12:37:06.530 に答える