คำถามติดแท็ก loops

** loop ** คือลำดับของคำสั่งที่ระบุเพียงครั้งเดียว แต่อาจดำเนินการหลายครั้งติดต่อกัน

3
วิธีทดสอบหน่วยวิธีการที่ส่งคืนคอลเลกชันในขณะที่หลีกเลี่ยงตรรกะในการทดสอบ
ฉันกำลังทดสอบวิธีการในการสร้างคอลเลกชันของวัตถุข้อมูล ฉันต้องการตรวจสอบว่ามีการตั้งค่าคุณสมบัติของวัตถุอย่างถูกต้อง คุณสมบัติบางอย่างจะถูกตั้งค่าเป็นสิ่งเดียวกัน อื่น ๆ จะถูกกำหนดเป็นค่าซึ่งขึ้นอยู่กับตำแหน่งของพวกเขาในคอลเลกชัน วิธีที่เป็นธรรมชาติในการทำสิ่งนี้ดูเหมือนจะเป็นแบบวนซ้ำ อย่างไรก็ตาม Roy Osherove แนะนำอย่างยิ่งต่อการใช้ตรรกะในการทดสอบหน่วย ( Art of Unit Testing , 178) เขาพูดว่า: การทดสอบที่มีลอจิกมักจะทำการทดสอบมากกว่าหนึ่งอย่างในแต่ละครั้งซึ่งไม่แนะนำให้ทำเพราะการทดสอบนั้นสามารถอ่านได้ง่ายกว่าและเปราะบางกว่า แต่ตรรกะการทดสอบยังเพิ่มความซับซ้อนที่อาจมีจุดบกพร่องที่ซ่อนอยู่ การทดสอบควรเป็นชุดของการเรียกใช้เมธอดโดยไม่มีโฟลว์ควบคุมไม่เท่าtry-catchกันและด้วยการเรียกยืนยัน อย่างไรก็ตามฉันไม่เห็นสิ่งผิดปกติในการออกแบบของฉัน (คุณจะสร้างรายการของวัตถุข้อมูลได้อย่างไรค่าบางค่าขึ้นอยู่กับว่าอยู่ในลำดับที่เป็นอย่างไร - ไม่สามารถสร้างและทดสอบแยกต่างหากได้อย่างแน่นอน มีบางสิ่งที่ไม่เป็นมิตรกับการออกแบบของฉันหรือไม่? หรือการอุทิศตนอย่างจริงจังกับคำสอนของ Osherove เกินไป? หรือมีเวทย์มนตร์ทดสอบหน่วยความลับบางอย่างที่ฉันไม่รู้เกี่ยวกับการหลีกเลี่ยงปัญหานี้หรือไม่? (ฉันกำลังเขียนใน C # / VS2010 / NUnit แต่มองหาคำตอบที่ไม่เชื่อเรื่องภาษาถ้าเป็นไปได้)

3
มันสร้างความแตกต่างถ้าฉันประกาศตัวแปรภายในหรือภายนอกวงใน Java? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ซ้ำได้: คุณประกาศตัวแปรที่ไหน ด้านบนของวิธีการหรือเมื่อคุณต้องการ? มันสร้างความแตกต่างถ้าฉันประกาศตัวแปรภายในหรือภายนอกวงใน Java? นี่คือ for(int i = 0; i < 1000; i++) { int temp = doSomething(); someMethod(temp); } เท่ากับนี้ (เกี่ยวกับการใช้หน่วยความจำ) int temp = 0; for(int i = 0; i < 1000; i++) { temp = doSomething(); …
13 java  variables  loops 

2
จะเกิดอะไรขึ้นเมื่อเธรดรองานในขณะที่ลูป?
หลังจากจัดการกับรูปแบบ async / คอยรูปของ C # ในขณะนี้ฉันก็ตระหนักว่าฉันไม่รู้วิธีอธิบายสิ่งที่เกิดขึ้นในรหัสต่อไปนี้: async void MyThread() { while (!_quit) { await GetWorkAsync(); } } GetWorkAsync()จะถือว่าคืนค่าTaskที่ไม่สามารถรอได้ซึ่งอาจหรือไม่อาจทำให้เกิดการสลับเธรดเมื่อดำเนินการต่อเนื่อง ฉันจะไม่สับสนถ้าการรอไม่ได้อยู่ในวง ฉันคาดหวังว่าส่วนที่เหลือของวิธี (เช่นความต่อเนื่อง) อาจจะดำเนินการในหัวข้ออื่นซึ่งเป็นเรื่องปกติ อย่างไรก็ตามในวงแนวคิดของ "ส่วนที่เหลือของวิธีการ" ทำให้ฉันมีหมอกเล็กน้อย จะเกิดอะไรขึ้นกับ "ส่วนที่เหลือของลูป" หากเธรดเปิดอยู่ต่อเนื่องกับหากไม่เปลี่ยน เธรดใดที่วนซ้ำครั้งถัดไปของลูปที่เรียกใช้งาน การสังเกตของฉันแสดง (ไม่ได้รับการตรวจสอบอย่างแน่ชัด) ว่าการวนซ้ำแต่ละครั้งเริ่มต้นในเธรดเดียวกัน (ฉบับดั้งเดิม) ในขณะที่การดำเนินการต่อเนื่องจะดำเนินการอีกครั้ง สิ่งนี้เป็นจริงได้ไหม ถ้าใช่นี่คือระดับของการขนานที่ไม่คาดคิดซึ่งจำเป็นต้องคำนึงถึงความปลอดภัยของเธรดแบบ vis-a-vis ของเมธอด GetWorkAsync หรือไม่? UPDATE: คำถามของฉันไม่เหมือนกันตามที่แนะนำโดยบางคน while (!_quit) { ... }รูปแบบรหัสเป็นเพียงความเรียบง่ายของรหัสที่เกิดขึ้นจริงของฉัน ในความเป็นจริงเธรดของฉันคือวนรอบที่ยาวนานซึ่งประมวลผลคิวอินพุตของไอเท็มงานในช่วงเวลาปกติ (ทุกๆ …
10 c#  loops  async 

9
วิธีที่ชัดเจนในการข้ามองค์ประกอบแรกในดัชนีที่ใช้สำหรับลูป
ฉันมีการวนรอบที่ฉันต้องข้ามองค์ประกอบแรกในอาร์เรย์ zero-based ข้อใดแสดงถึงความตั้งใจของฉันอย่างชัดเจนมากขึ้น for($i=1 ; $i < count(array) ; $i++){ array[$i]; } หรือ for($i=0+1 ; $i < count(array) ; $i++){ array[$i]; }
9 php  loops 

8
การปรับปรุง C # foreach?
ฉันพบปัญหานี้บ่อยครั้งในระหว่างการเขียนโปรแกรมซึ่งฉันต้องการให้มีการนับดัชนีแบบวนซ้ำภายใน foreach และต้องสร้างจำนวนเต็มใช้การเพิ่มขึ้น ฯลฯ จะไม่เป็นการดีถ้ามีคำหลักที่แนะนำ วงนับภายใน foreach หรือไม่? มันสามารถใช้กับลูปอื่นได้เช่นกัน สิ่งนี้ขัดกับการใช้คำหลักที่เห็นว่าคอมไพเลอร์จะไม่อนุญาตให้ใช้คำหลักนี้ที่ใดก็ได้ แต่อยู่ในโครงสร้างลูปหรือไม่
9 c#  loops 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.