2017-05-04 43 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

我已根據您的要求更新了我的代碼。 –