2017-05-04 40 views
-2

我有一个for循环代码:如何在固定限制结束后重复循环?

try 
    { 
     outputStream = new FileOutputStream("/sdcard/output1.txt"); 
     Writer out = new OutputStreamWriter(outputStream); 
     Point point; 
     for (int i = 48; i <= 66; i++) 
     { 
     point = landmarks.get(i); 
     int pointX = (int) (point.x * resizeRatio); 
     int pointY = (int) (point.y * resizeRatio); 
     Log.d(TAG, "My points:(" + pointX + "," + pointY + ")"); 
     point = landmarks.get(i + 1); 
     int pointXX = (int) (point.x * resizeRatio); 
     int pointYY = (int) (point.y * resizeRatio); 
     canvas.drawLine(pointX, pointY, pointXX, pointYY,mFaceLandmardkPaint); 
     out.write(Integer.toString(pointX)); 
     String h = ","; 
     out.write(h); 
     out.write(Integer.toString(pointY)); 
     String j = ","; 
     out.write(j); 
     } 
     out.write("\n"); 
     out.close(); 
     } 

在此我需要的第一66限制后从48限制开始得到over.How我可以再次从第48开始限制???

+0

如果妳这样做,当你的循环将被打破? – tahsinRupam

+0

把它放到第二个循环? – Henry

回答

0

使用递归。 创建一个方法来执行你的forloop,并在循环结束时再次调用该方法。 像

 if(i==65){ 
     callMethodAgain(); 
       } 

,并打破循环店里一个临时变量做计数前。

 if(i==65&& temp<2){ 
      temp++; 
     callMethodAgain(); 
       } 
0

尝试下面的代码:

for(int j=0; j<2; j++){ 
    for (int i = 48; i <= 66; i++) 
    { 
    if(j == 0){ 
    point = landmarks.get(i); 
    int pointX = (int) (point.x * resizeRatio); 
    int pointY = (int) (point.y * resizeRatio); 
    Log.d(TAG, "My points:(" + pointX + "," + pointY + ")"); 
    point = landmarks.get(i + 1); 
    int pointXX = (int) (point.x * resizeRatio); 
    int pointYY = (int) (point.y * resizeRatio); 
    canvas.drawLine(pointX, pointY, pointXX, pointYY,mFaceLandmardkPaint); 
    out.write(Integer.toString(pointX)); 
    String h = ","; 
    out.write(h); 
    out.write(Integer.toString(pointY)); 
    String j = ","; 
    out.write(j); 
    } 
    else{ 
     // do your stuff 
    } 

    } 
} 
+0

重复for循环时,我想从该循环获得不同的点。如何得到这一点。 – Ammu

+0

我已根据您的要求更新了我的代码。 –