這是我的循環結構。如何在java中組織3個嵌套循環?
int k = 0;
do {
....
do {
fc = Recognize();
....
do {
....
} while(fc != false);
k++;
} while(k != 20);
if (k == 20) {
return;
}
} while(true);
我必須結束所有的循環時,無論是k
等於20或fc
等於true。
我嘗試了不同的方法來做到這一點,但失敗了。上面的代碼是我最後一次嘗試。需要幫助解決這個問題。
grabber.start();
int k=0;
do {
grabber.stop();
grabber.start();
img = grabber.grab();
if (img != null) {
canvas.showImage(img);
canvas.pack();
cvWaitKey(0);
}
do {
fc= Recognize();
grabber.start();
do {
img = grabber.grab();
if (img != null) {
CvHaarClassifierCascade cascade = new
CvHaarClassifierCascade(cvLoad(XML_FILE));
CvMemStorage storage = CvMemStorage.create();
CvSeq sign = cvHaarDetectObjects(img,
cascade,storage, 1.5, 3,CV_HAAR_DO_CANNY_PRUNING);
cvClearMemStorage(storage);
total_Faces = sign.total();
for(int i = 0; i < total_Faces; i++){
CvRect r = new CvRect(cvGetSeqElem(sign, i));
cvRectangle (img,
cvPoint(r.x(),r.y()),
cvPoint(r.width()+r.x(),r.height()+ r.y()),
CvScalar.RED,2,CV_AA,0);
x=r.x();
y=r.y();
h=r.height();
w=r.width();
}
cvFlip(img, img, 1);
canvas.showImage(img);
canvas.pack();
cvWaitKey(0);
}
} while(fc!=false);
k++;
} while(k!=21);
} while(true);
}
您現在有,如果我正確地讀它。你初始化'INT K = 20的無限循環;',那麼當你在第二級'你'有'k ++',並且在檢查同樣的do-while-loop時檢查'while(k!= 20);'此時'k'是21,並且它不斷上升,所以它將永遠不會在你發佈的代碼片段中留下這個'do-while'循環。 –
@Kevin Cruijssen。它是k = 0;在我的代碼中。我寫這篇文章時弄錯了。 –
仍然很混亂......這段代碼做了什麼?如果圖像不爲空,則抓取圖像並顯示它,然後執行一些「識別」並獲取另一個(?)圖像。如果後一張圖像不爲空,則對其進行一些分析,並且如果發現某些東西,則將每個對象上的凹痕放在上面?用文字解釋你想做什麼。 – Johnny