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

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

8
วิธี pythonic ในการทำบางสิ่งบางอย่าง N ครั้งโดยไม่มีตัวแปรดัชนี?
ทุกวันฉันรักหลามมากขึ้นเรื่อย ๆ วันนี้ฉันกำลังเขียนโค้ดบางอย่างเช่น: for i in xrange(N): do_something() ฉันต้องทำอะไรซักอย่าง N ครั้ง แต่ในแต่ละครั้งไม่ได้ขึ้นอยู่กับค่าของi(ตัวแปรดัชนี) ฉันรู้ว่าฉันกำลังสร้างตัวแปรที่ฉันไม่เคยใช้ ( i) และฉันคิดว่า "แน่นอนว่ามันเป็นวิธีการทำสิ่งที่ยิ่งใหญ่กว่านี้โดยไม่จำเป็นต้องใช้ตัวแปรดัชนีที่ไร้ประโยชน์" ดังนั้น ... คำถามคือ: คุณรู้วิธีการทำงานที่เรียบง่ายในวิธีที่สวยงามยิ่งขึ้น (pythonic) หรือไม่?

12
วนซ้ำผ่านเวกเตอร์ C ++ โดยใช้ลูป 'for'
ฉันยังใหม่กับภาษา C ++ ฉันเริ่มใช้เวกเตอร์และสังเกตเห็นว่าในโค้ดทั้งหมดที่ฉันเห็นว่าจะวนซ้ำแม้ว่าเวกเตอร์ผ่านดัชนีพารามิเตอร์แรกของforลูปมักจะขึ้นอยู่กับเวกเตอร์เสมอ ใน Java ฉันอาจทำสิ่งนี้ด้วย ArrayList: for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); } มีเหตุผลที่ฉันไม่เห็นสิ่งนี้ใน C ++ หรือไม่? ปฏิบัติไม่ดีหรือไม่?

7
วิธีรับดัชนีปัจจุบันสำหรับแต่ละ Kotlin
จะรับดัชนีในแต่ละลูปได้อย่างไร? ฉันต้องการพิมพ์ตัวเลขสำหรับการทำซ้ำทุก ๆ วินาที ตัวอย่างเช่น for (value in collection) { if (iteration_no % 2) { //do something } } ใน java เรามีแบบดั้งเดิมสำหรับการวนซ้ำ for (int i = 0; i < collection.length; i++) วิธีการรับi?
156 android  for-loop  kotlin 

7
ฟังก์ชั่น list-comprehensions และฟังก์ชั่นการทำงานเร็วกว่า“ for loops” หรือไม่?
ในแง่ของประสิทธิภาพในหลามเป็นรายการความเข้าใจหรือฟังก์ชั่นชอบmap(), filter()และreduce()เร็วกว่าสำหรับห่วง? ทำไมในทางเทคนิคแล้วมันทำงานด้วยความเร็ว Cในขณะที่ for loop ทำงานในความเร็วของ python virtual machine ? สมมติว่าในเกมที่ฉันกำลังพัฒนาฉันต้องวาดแผนที่ที่ซับซ้อนและมีขนาดใหญ่เพื่อใช้เป็นลูป คำถามนี้จะเกี่ยวข้องกันอย่างแน่นอนเช่นหาก list-comprehension เร็วกว่าจริง ๆ มันจะเป็นตัวเลือกที่ดีกว่ามากเพื่อหลีกเลี่ยงความล่าช้า (แม้จะมีความซับซ้อนในการมองเห็นของโค้ด)

4
เปลี่ยนค่าในขณะที่วนซ้ำ
สมมติว่าฉันมีประเภทเหล่านี้: type Attribute struct { Key, Val string } type Node struct { Attr []Attribute } และฉันต้องการที่จะทำซ้ำในคุณลักษณะของโหนดเพื่อเปลี่ยนพวกเขา ฉันอยากจะทำ: for _, attr := range n.Attr { if attr.Key == "href" { attr.Val = "something" } } แต่เนื่องจากattrไม่ใช่ตัวชี้สิ่งนี้จะไม่ทำงานและฉันต้องทำ: for i, attr := range n.Attr { if attr.Key == "href" { n.Attr[i].Val = …
153 arrays  for-loop  go 

17
ตรวจสอบว่ามีค่าวัตถุอยู่ในอาร์เรย์ Javascript ของวัตถุหรือไม่และไม่เพิ่มวัตถุใหม่ลงในอาร์เรย์
ถ้าฉันมีอาร์เรย์ของวัตถุต่อไปนี้: [ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ] มีวิธีวนลูปผ่านอาร์เรย์เพื่อตรวจสอบว่ามีค่าชื่อผู้ใช้เฉพาะอยู่แล้วหรือไม่และไม่ทำอะไรเลย แต่ถ้าไม่เพิ่มวัตถุใหม่ในอาร์เรย์ด้วยชื่อผู้ใช้ดังกล่าว (และ ID ใหม่) ขอบคุณ!

5
TypeScript สำหรับ ... จากด้วยดัชนี / คีย์?
ดังที่อธิบายไว้ที่นี่ TypeScript แนะนำการวนรอบ foreach: var someArray = [9, 2, 5]; for (var item of someArray) { console.log(item); // 9,2,5 } แต่ไม่มีดัชนี / คีย์? ฉันคาดหวังบางอย่างเช่น: for (var item, key of someArray) { ... }

21
การทำซ้ำครั้งล่าสุดของ Enhanced for loop ใน java
มีวิธีการตรวจสอบว่าการวนซ้ำเป็นครั้งสุดท้ายหรือไม่ รหัสของฉันมีลักษณะดังนี้: int[] array = {1, 2, 3...}; StringBuilder builder = new StringBuilder(); for(int i : array) { builder.append("" + i); if(!lastiteration) builder.append(","); } ตอนนี้สิ่งที่ฉันไม่ต้องการที่จะผนวกเครื่องหมายจุลภาคในการทำซ้ำครั้งล่าสุด ขณะนี้มีวิธีการตรวจสอบว่าเป็นซ้ำล่าสุดหรือฉันติดกับห่วงหรือใช้ตัวนับภายนอกเพื่อติดตาม

4
การลบคีย์ที่เลือกออกจากแผนที่ภายในวงช่วงระยะปลอดภัยหรือไม่?
จะลบคีย์ที่เลือกออกจากแผนที่ได้อย่างไร? ปลอดภัยไหมที่จะรวมdelete()กับช่วงดังในโค้ดด้านล่าง package main import "fmt" type Info struct { value string } func main() { table := make(map[string]*Info) for i := 0; i < 10; i++ { str := fmt.Sprintf("%v", i) table[str] = &Info{str} } for key, value := range table { fmt.Printf("deleting %v=>%v\n", key, value.value) delete(table, key) } …
136 dictionary  for-loop  go 

5
ประสิทธิภาพของ FOR vs FOREACH ใน PHP
ก่อนอื่นฉันเข้าใจใน 90% ของแอปพลิเคชันความแตกต่างของประสิทธิภาพนั้นไม่เกี่ยวข้องกันเลย แต่ฉันแค่ต้องรู้ว่าตัวไหนเร็วกว่า นั่นแล ... ข้อมูลที่มีอยู่บนอินเทอร์เน็ตในปัจจุบันทำให้เกิดความสับสน หลายคนบอกว่า foreach ไม่ดี แต่ในทางเทคนิคแล้วมันควรจะเร็วกว่าเพราะมันควรจะทำให้การเขียนการส่งผ่านอาร์เรย์ง่ายขึ้นโดยใช้ตัววนซ้ำ Iterators ซึ่งคาดว่าจะเร็วขึ้นอีกครั้ง แต่ใน PHP ก็เห็นได้ชัดว่าช้า (หรือนี่ไม่ใช่ PHP?) ฉันกำลังพูดถึงฟังก์ชั่นอาร์เรย์: next () prev () reset () เป็นต้นถ้าเป็นฟังก์ชั่นที่สม่ำเสมอและไม่ใช่หนึ่งในคุณสมบัติภาษา PHP ที่มีลักษณะเหมือนฟังก์ชัน เพื่อ จำกัด สิ่งนี้ให้แคบลงเล็กน้อย : ฉันไม่น่าสนใจในการสำรวจอาร์เรย์ในขั้นตอนที่มากกว่า 1 (ไม่มีขั้นตอนเชิงลบเช่นกันเช่นการวนซ้ำย้อนกลับ) ฉันยังไม่สนใจการลัดเลาะไปและกลับจากจุดใด ๆ โดยพลการเพียงแค่ 0 ถึงความยาว ฉันไม่เห็นการจัดการอาร์เรย์ที่มีมากกว่า 1,000 คีย์เกิดขึ้นเป็นประจำ แต่ฉันเห็นว่าอาร์เรย์ถูกข้ามผ่านหลายครั้งด้วยตรรกะของแอปพลิเคชัน! สำหรับการดำเนินการส่วนใหญ่เป็นเพียงการจัดการสตริงและการสะท้อนเท่านั้น เว็บไซต์อ้างอิงบางส่วนมีดังนี้: http://www.phpbench.com/ http://www.php.lt/benchmark/phpbench.php สิ่งที่ฉันได้ยินทุกที่: foreachช้าและทำให้for/ …

8
วิธีเพิ่มประสิทธิภาพสำหรับความเข้าใจและการวนซ้ำใน Scala
ดังนั้น Scala ควรจะเร็วเท่ากับ Java ฉันกำลังแก้ไขปัญหาProject Eulerบางอย่างใน Scala ที่ฉันได้แก้ไขใน Java ปัญหาเฉพาะที่ 5: "จำนวนบวกที่น้อยที่สุดที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 1 ถึง 20 เท่ากันคืออะไร" นี่คือโซลูชัน Java ของฉันซึ่งใช้เวลา 0.7 วินาทีในการดำเนินการบนเครื่องของฉัน: public class P005_evenly_divisible implements Runnable{ final int t = 20; public void run() { int i = 10; while(!isEvenlyDivisible(i, t)){ i += 2; } System.out.println(i); } boolean isEvenlyDivisible(int a, …

4
จะหยุด JavaScript สำหรับการวนซ้ำได้อย่างไร
ฉันใช้ JavaScript นี้เพื่อวนซ้ำผ่านอาร์เรย์และค้นหาองค์ประกอบอาร์เรย์ที่ตรงกัน: var remSize = [], szString, remData, remIndex, i; for (i = 0; i < remSize.length; i++) { // I'm looking for the index i, when the condition is true remSize[i].size == remData.size ? remIndex = i : remIndex = -1; } อาร์เรย์มีเหล่านี้ ["34", "36", "38"...]"ขนาด": remData.size คือ …

19
การใช้ break in a for loop เป็นการปฏิบัติที่ไม่ดีหรือไม่? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา การใช้breakคำสั่งภายในforลูปเป็นการปฏิบัติที่ไม่ดีหรือไม่? สมมติว่าฉันกำลังค้นหาค่าในอาร์เรย์ เปรียบเทียบภายใน for loop และเมื่อพบค่าbreak;เพื่อออกจาก for loop เป็นการปฏิบัติที่ไม่ดีหรือไม่? ฉันได้เห็นทางเลือกที่ใช้: กำหนดตัวแปรvFoundและตั้งค่าเป็นจริงเมื่อพบค่าและตรวจสอบvFoundในforเงื่อนไขคำสั่ง แต่จำเป็นต้องสร้างตัวแปรใหม่เพื่อจุดประสงค์นี้หรือไม่? ฉันกำลังถามในบริบทของ C หรือ C ++ ปกติสำหรับลูป PS: หลักเกณฑ์การเข้ารหัส MISRA ไม่แนะนำให้ใช้ตัวแบ่ง
124 for-loop  break 

6
ฉันจะทำลายวงนอกด้วย PHP ได้อย่างไร
ฉันต้องการทำลายลูปภายนอกสำหรับ / foreach ใน PHP สิ่งนี้สามารถทำได้ใน ActionScript ดังนี้: top : for each(var i:MovieClip in movieClipArray) { for each(var j:String in nameArray) { if(i.name == j) break top; } } PHP เทียบเท่ากับอะไร?

6
Breaking / exit ซ้อนใน vb.net
ฉันจะออกจากการซ้อนหรือวนซ้ำใน vb.net ได้อย่างไร ฉันพยายามใช้ทางออก แต่มันกระโดดหรือแตกเพียงอันเดียวสำหรับลูปเท่านั้น ฉันจะทำสิ่งต่อไปนี้ได้อย่างไร: for each item in itemList for each item1 in itemList1 if item1.text = "bla bla bla" then exit for end if end for end for

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