คำถามติดแท็ก for-loop

ห่วงสำหรับเป็นโครงสร้างการควบคุมที่ใช้โดยภาษาการเขียนโปรแกรมจำนวนมากเพื่อย้ำช่วง มันเป็นวิธีการทำซ้ำคำสั่งหลายครั้งจนกระทั่งวนซ้ำ ขึ้นอยู่กับภาษาซึ่งอาจอยู่ในช่วงของจำนวนเต็มตัววนซ้ำเป็นต้น

4
Java: เริ่มต้นตัวแปรหลายตัวในสำหรับ loop init?
ฉันต้องการมีตัวแปรลูปสองประเภทที่แตกต่างกัน มีวิธีใดบ้างที่จะทำให้งานนี้ @Override public T get(int index) throws IndexOutOfBoundsException { // syntax error on first 'int' for (Node<T> current = first, int currentIndex; current != null; current = current.next, currentIndex++) { if (currentIndex == index) { return current.datum; } } throw new IndexOutOfBoundsException(); }
92 java  for-loop 

12
เครื่องหมายโคลอน (:) ทำอะไรได้บ้าง?
เห็นได้ชัดว่าเครื่องหมายจุดคู่ถูกใช้ใน Java หลายวิธี ใครช่วยอธิบายว่ามันทำอะไร? ตัวอย่างเช่นที่นี่: String cardString = ""; for (PlayingCard c : this.list) // <-- { cardString += c + "\n"; } คุณจะเขียนfor-eachลูปนี้ด้วยวิธีอื่นอย่างไรเพื่อไม่ให้รวมเข้าด้วยกัน:?

6
การวนซ้ำที่ไม่มีที่สิ้นสุดดูเหมือนจะสิ้นสุดลงเว้นแต่จะใช้ System.out.println
ฉันมีโค้ดง่ายๆที่ควรจะวนซ้ำไม่รู้จบเพราะมันxจะเติบโตขึ้นเรื่อย ๆ และจะยังคงใหญ่กว่าjเสมอ int x = 5; int y = 9; for (int j = 0; j < x; j++) { x = x + y; } System.out.println(y); แต่มันพิมพ์yและไม่วนซ้ำไม่รู้จบ ฉันคิดไม่ออกว่าทำไม อย่างไรก็ตามเมื่อฉันปรับรหัสในลักษณะต่อไปนี้: int x = 5; int y = 9; for (int j = 0; j < x; j++) { x …

8
วิธีที่ดีกว่าในการค้นหาดัชนีของรายการใน ArrayList?
สำหรับแอป Android ฉันมีฟังก์ชันดังต่อไปนี้ private ArrayList<String> _categories; // eg ["horses","camels"[,etc]] private int getCategoryPos(String category) { for(int i = 0; i < this._categories.size(); ++i) { if(this._categories.get(i) == category) return i; } return -1; } นั่นเป็นวิธีที่ "ดีที่สุด" ในการเขียนฟังก์ชันเพื่อรับตำแหน่งขององค์ประกอบหรือไม่? หรือมีฟังก์ชันเนทีฟ shmancy แฟนซีใน java ที่ฉันควรใช้?

3
นี่เป็นข้อผิดพลาดที่ทราบของ C ++ 11 สำหรับลูปหรือไม่?
สมมติว่าเรามีโครงสร้างสำหรับการถือครอง 3 คู่พร้อมฟังก์ชันสมาชิกบางอย่าง: struct Vector { double x, y, z; // ... Vector &negate() { x = -x; y = -y; z = -z; return *this; } Vector &normalize() { double s = 1./sqrt(x*x+y*y+z*z); x *= s; y *= s; z *= s; return *this; } // ... }; นี่เป็นเพียงเล็กน้อยที่ออกแบบมาเพื่อความเรียบง่าย …

12
วนซ้ำ tuples ใน bash?
เป็นไปได้ไหมที่จะวนซ้ำสิ่งที่ทับซ้อนในทุบตี? ตัวอย่างเช่นจะเป็นการดีหากสิ่งต่อไปนี้ได้ผล: for (i,j) in ((c,3), (e,5)); do echo "$i and $j"; done มีวิธีแก้ปัญหาที่ทำให้ฉันวนรอบสิ่งที่เพิ่มขึ้นได้หรือไม่?
89 bash  for-loop 

3
JavaScript - ความแตกต่างของ myArray.forEach vs for loop
ฉันเห็นคำถามมากมายที่แนะนำให้ใช้: for (var i = 0; i < myArray.length; i++){ /* ... */ } แทน: for (var i in myArray){ /* ... */ } สำหรับอาร์เรย์เนื่องจากการวนซ้ำไม่สอดคล้องกัน ( ดูที่นี่ ) อย่างไรก็ตามฉันไม่พบสิ่งที่ดูเหมือนจะชอบลูปเชิงวัตถุ: myArray.forEach(function(item, index){ /* ... */ }); ซึ่งดูเหมือนง่ายกว่าสำหรับฉัน สำหรับโครงการปัจจุบันของฉันความเข้ากันได้ของ IE8 เป็นสิ่งสำคัญและฉันกำลังพิจารณาใช้polyfill ของ Mozillaแต่ฉันไม่แน่ใจ 100% ว่าจะได้ผลอย่างไร มีความแตกต่างระหว่างมาตรฐานสำหรับลูป (ตัวอย่างแรกด้านบน) และการใช้งาน Array.prototype.forEach โดยเบราว์เซอร์สมัยใหม่หรือไม่ มีความแตกต่างระหว่างการใช้งานเบราว์เซอร์สมัยใหม่และการใช้งานของ Mozilla …

3
ซ้อนสำหรับลูปโดยใช้ความเข้าใจรายการ
ถ้าฉันมีสองสาย'abc'และ'def'ฉันสามารถหาชุดค่าผสมทั้งหมดได้โดยใช้สองสายสำหรับลูป: for j in s1: for k in s2: print(j, k) อย่างไรก็ตามฉันต้องการดำเนินการนี้โดยใช้ความเข้าใจในรายการ ฉันลองมาหลายวิธีแล้ว แต่ไม่เคยได้รับเลย ไม่มีใครรู้วิธีการทำเช่นนี้?

3
สำหรับ Loop on Lua
งานของฉันคือวิธีทำห่วง ฉันคิดออกในรูปของตัวเลข แต่ไม่สามารถคิดออกเป็นชื่อได้ ฉันต้องการสร้าง for loop ที่เรียกใช้รายชื่อ ต่อไปนี้คือสิ่งที่ฉันมีจนถึงตอนนี้: names = {'John', 'Joe', 'Steve'} for names = 1, 3 do print (names) end ฉันลองทำอย่างอื่นแล้ว แต่ก็ไม่ได้ผลเทอร์มินัลมักจะแสดงรายการ 1, 2, 3 เสมอ ...
87 loops  for-loop  lua 

4
เหตุใด for loop จึงทำงานแตกต่างกันเมื่อย้ายรหัส VB.NET ไปที่ C #
ฉันอยู่ระหว่างการย้ายโปรเจ็กต์จาก Visual Basic เป็น C # และฉันต้องเปลี่ยนวิธีการประกาศforลูปที่ใช้ ใน VB.NET forลูปถูกประกาศไว้ด้านล่าง: Dim stringValue As String = "42" For i As Integer = 1 To 10 - stringValue.Length stringValue = stringValue & " " & CStr(i) Console.WriteLine(stringValue) Next ผลลัพธ์ใด: 42 1 42 1 2 42 1 2 3 42 1 2 3 …
87 c#  vb.net  loops  for-loop 

6
ต้องการตัววนซ้ำเมื่อใช้ ranged-based สำหรับลูป
ขณะนี้ฉันสามารถทำลูปตามระยะห่างได้เท่านั้น: for (auto& value : values) แต่บางครั้งฉันต้องการตัววนซ้ำค่าแทนการอ้างอิง (ไม่ว่าด้วยเหตุผลใดก็ตาม) มีวิธีใดบ้างที่ไม่ต้องผ่านเวกเตอร์เปรียบเทียบค่าทั้งหมด?
85 c++  c++11  for-loop  iterator 

1
ไม่คาดหมายเวลาทำงานสำหรับรหัส HashSet
ตอนแรกฉันมีรหัสนี้: import java.util.*; public class sandbox { public static void main(String[] args) { HashSet<Integer> hashSet = new HashSet<>(); for (int i = 0; i < 100_000; i++) { hashSet.add(i); } long start = System.currentTimeMillis(); for (int i = 0; i < 100_000; i++) { for (Integer val : hashSet) { …

5
จะมีตัวแปร const ใน for for loop สำหรับการสร้าง class template ได้อย่างไร?
ฉันมีรหัสเช่น template <size_t N> class A { template <size_t N> someFunctions() {}; }; ตอนนี้ฉันต้องการสร้างอินสแตนซ์ของคลาสและเรียกใช้ฟังก์ชันในการวนรอบสำหรับชุดของค่าจำนวนมากเช่น // in main() int main() { for (int i = 1; i <= 100; i++) { const int N = i; // dont know how to do this A<N> a; a.functionCalls(); } } ทำอย่างไร หวังว่าจะมีวิธีการทำเช่นนี้

2
ค่าสเกลาร์ได้รับผลกระทบหลังจากกดหรือไม่… (Raku)
ฉันมีปัญหาในการทำความเข้าใจว่าเมื่อใดและเพราะเหตุใดค่าที่จัดขึ้นโดยScalarคอนเทนเนอร์ที่ถูกพุชได้รับผลกระทบหลังจากการพุช ฉันจะพยายามอธิบายปัญหาที่ฉันพบในบริบทที่ซับซ้อนมากขึ้นในตัวอย่างสองตัวอย่าง * * * * * * * * ตัวอย่างที่ 1ในตัวอย่างแรกเป็นสเกลา$iถูกผลักลงบนอาร์เรย์เป็นส่วนหนึ่งของ@b Listหลังจากการพุชค่าที่เก็บโดยสเกลาร์จะได้รับการอัพเดตอย่างชัดเจนในการวนซ้ำในภายหลังของ for for loop โดยใช้$i++คำสั่ง การปรับปรุงเหล่านี้มีผลกระทบต่อค่าในอาร์เรย์@b: ในตอนท้ายของสำหรับวงที่@b[0;0]มีค่าเท่ากับและไม่มีอีกต่อไปเพื่อ32 my @b; my $i=0; for 1..3 -> $x { $i++; say 'Loose var $i: ', $i.VAR.WHICH, " ", $i.VAR.WHERE; if $x == 2 { @b.push(($i,1)); say 'Pushed $i : ', @b[0;0].VAR.WHICH, …

6
ช่วงไร้เดียงสาที่ใช้สำหรับลูปไม่ทำงาน
ต่อไปนี้ไม่ได้รวบรวม: #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } ลองใช้กับ godbolt ข้อผิดพลาดของคอมไพเลอร์คือ: error: assignment of read-only reference 's' ตอนนี้ในกรณีของฉันจริงรายการทำจากตัวแปรสมาชิกในชั้นเรียน ทีนี้มันไม่ได้ผลเพราะนิพจน์กลายเป็นinitializer_list<int>สิ่งที่คัดลอก a, b, c และ d - ดังนั้นจึงไม่อนุญาตให้ทำการดัดแปลง คำถามของฉันคือสองเท่า: มีแรงจูงใจเบื้องหลังที่ไม่ยอมให้เขียนช่วงสำหรับลูปด้วยวิธีนี้หรือไม่? เช่น. …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.