嗨,感謝您花時間看看這個。循環遍歷for循環和If/Else
我試圖實現以下輸出:
迭代0:
隊列1 = 2345678910 |隊列2 =
迭代1:
隊列1 = 3579 |隊列2 = 2
迭代2:
隊列1 = 57 |隊列2 = 23
迭代3:
隊列1 = 7 |隊列2 = 235
迭代4:
隊列1 = |隊列2 = 2357
這應該是「The Sieve of Eratosthenes」的實施
我不會騙這顯然是學校的工作! (儘管最後期限已經過去了,我並沒有試着去簡單的成績,但我真的想知道爲什麼我無法得到這個工作)
我做了大量的搜索,但是我發現所有類似的東西都是用數組實現的。 (其中教授不允許)
here是小提琴,顯示我在哪裏:
這似乎是我的問題,但不會刪除最後一個項目。
if (this.first == this.last) {
this.first = null;
return this.first.content;
this.length--;
}
我凌亂它與各種控制語句找到邏輯問題...
,當我開始我很確定我可以像如下:
通過循環排隊1和保存的電流值開始到(x) - 通過隊列1循環,將第一個項目到隊列2 ---- IF/ELSE當前項是通過在別的重新隊列x將除盡
我切換它取決於循環,但它被套牢拆除的最後一個項目
// find the primes function
function fp() {
fillQueue(); // call the fillQueue function below
document.getElementById("output").innerHTML += "Ctrl " + "|it. " + it + " |queue length " + q1.length + " |x " + x + " |current x" + cx + " |Q1: = " + q1.toString() + " | Q2: = " + q2.toString() + " | Q3: = " + q3.toString() + "<br />";
while (q1.length >= 0) {
dq1();
cx = x;
q3.enqueue(cx);
while (q1.length >= 0) {
dq1();
eval();
it++;
}
while (q2.length >= 0) {
dq2();
d1.enqueue(x);
}
}
記住:'='是分配,''==(或更好,''===)是用於比較。這條線會給你帶來一些麻煩:it = n - 1。這應該也可能是'<或'<='而不是'='。 –
感謝您的回覆......修復了迭代問題並讓我更接近......仍然有一些問題需要解決,因爲輸出仍然不正確 – Qriz75