Tôi muốn xây dựng một vòng lặp aA1 bB2 cC344 lặp lại thông qua hai biến cùng một lúc. aA1 bB2 cC345 là một mảng và aA1 bB2 cC346 đi từ 0 đến 16. Show
Kết quả cuối cùng nên đầu ra:
Thật không may, vòng lặp này không làm điều đó vì một số lý do vì nó lặp lại mỗi số 17 lần. Tôi còn thiếu gì ở đây? Vòng lặp qua nhiều mảng đồng thời, bạn được khuyến khích giải quyết nhiệm vụ này theo mô tả nhiệm vụ, sử dụng bất kỳ ngôn ngữ nào bạn có thể biết. Vòng lặp qua nhiều mảng & nbsp; (hoặc danh sách hoặc bộ dữ liệu hoặc bất cứ điều gì chúng được gọi bằng ngôn ngữ của bạn) & nbsp; và hiển thị & nbsp; Tôi th & nbsp; yếu tố của mỗi. Sử dụng ngôn ngữ của bạn & nbsp; "Đối với mỗi" & nbsp; Vòng lặp nếu nó có một, nếu không hãy lặp qua bộ sưu tập theo thứ tự với một số vòng lặp khác.
(a,b,c) (A,B,C) (1,2,3) Để tạo ra đầu ra: aA1 bB2 cC3
11l[edit][edit]L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z) aA1 bB2 cC3 Hội đồng 360 [Chỉnh sửa][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM a A 1 b B 2 c C 3 Hội đồng 8080 [Chỉnh sửa][edit]8080 không có cơ chế lập chỉ mục nào cả, vì vậy, người ta sẽ lặp lại các mảng bằng cách tăng các con trỏ tại chỗ thay vì làm theo cách này, nhưng nó có thể (chỉ cần thực hiện). 8080 có 7 thanh ghi tám bit (A, B, C, D, E, H, L), sáu trong số đó có thể tạo thành ba cặp 16 bit (BC, DE, HL). Trong số đó, HL là đặc biệt: Chỉ có thể sử dụng cho toán học và nó có thể được sử dụng như một con trỏ (đăng ký giả 8 bit M đề cập đến byte trong bộ nhớ ở aA1 bB2 cC347). Hơn nữa, nội dung của DE và HL có thể được hoán đổi, do đó, một con trỏ thứ cấp có thể được giữ trong DE và dễ dàng truy cập. Tuy nhiên, điều này không thể được thực hiện với BC. Do đó, mã này giữ chỉ số trong BC và danh sách các mảng trong DE. Truy cập mảng được thực hiện bằng cách tải các con trỏ mảng vào từng cái một, tính toán địa chỉ bằng cách thêm BC vào nó, sau đó tải giá trị thích hợp. Mã này chỉ đơn giản giả định rằng các mảng có cùng kích thước ( aA1 bB2 cC348) và nếu chúng không, nó sẽ chỉ cần đọc từ các địa chỉ sai. org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,0 aA1 bB2 cC3 Hội đồng 8086 [Chỉnh sửa][edit]Bộ xử lý 8086 có hai thanh ghi chỉ mục aA1 bB2 cC349 và aA1 bB2 cC350 và thanh ghi địa chỉ aA1 bB2 cC351. (Ngoài ra còn có con trỏ cơ sở aA1 bB2 cC352, được sử dụng để trỏ đến phân đoạn ngăn xếp và không được sử dụng ở đây.) Khi địa chỉ bộ nhớ, 8086 có thể tự động thêm lên: 1) một trong aA1 bB2 cC351 hoặc aA1 bB2 cC352, cộng với 2) một trong aA1 bB2 cC349 hoặc aA1 bB2 cC350, cộng với 3) một địa chỉ trực tiếp. Mã này sử dụng aA1 bB2 cC349 để theo dõi chỉ mục hiện tại và tải từng địa chỉ cơ sở của các mảng thành aA1 bB2 cC351 từng cái một. 0aA1 bB2 cC3 ACL2[edit][edit] 2Action![edit][edit] 3Ảnh chụp màn hình từ máy tính Atari 8 bit aA1 bB2 cC3 Ada[edit][edit] 5Algol 68 [Chỉnh sửa][edit]Hoạt động với: Algol 68 Phiên bản sửa đổi 1 - Không có tiện ích mở rộng cho ngôn ngữ được sử dụng: ALGOL 68 version Revision 1 - no extensions to language used 6aA1 bB2 cC3 Algol W [Chỉnh sửa][edit] 8Nếu các mảng không có cùng độ dài, lỗi phạm vi chỉ số sẽ xảy ra khi một phần tử không tồn tại được truy cập. Hopper tuyệt vời [chỉnh sửa][edit]Versión 1: Todos los mảng tienen el mismo Tamaño: 9aA1 bB2 cC3 Versión 2: Los Arrays Tienen Distinto Tamaño: (a,b,c) (A,B,C) (1,2,3)1 (a,b,c) (A,B,C) (1,2,3)2 APL[edit][edit]Trong APL, người ta sẽ không sử dụng một vòng lặp rõ ràng cho việc này. Thay vào đó, có một hàm tích hợp để biến một vectơ vectơ thành ma trận, đó là aA1 bB2 cC359. Ma trận có thể được chuyển đổi ( aA1 bB2 cC360), và sau đó quay lại thành một vectơ lồng nhau ( aA1 bB2 cC361). Các yếu tố có thể được xử lý tuyến tính sau đó. Nếu các vectơ đầu vào không có cùng kích thước, các vectơ ngắn hơn sẽ được đệm với các giá trị trống (khoảng trắng cho các vectơ ký tự, 0 cho các vectơ số) để phù hợp với vectơ dài nhất. (a,b,c) (A,B,C) (1,2,3)3 AppleScript[edit][edit](Phiên bản es 5 ziplistswith chức năng) Nếu chúng ta có chức năng bản đồ Applescript chung, chúng ta có thể sử dụng nó để viết một ziplistswith chung, áp dụng một hàm nhất định trên các danh sách có nguồn gốc từ các thành viên thứ n của danh sách danh sách (độ dài bằng nhau) tùy ý. (Trường hợp danh sách có độ dài không đồng đều, các mục vượt quá độ dài chia sẻ tối đa bị bỏ qua).map function, we can use it to write a generic zipListsWith, which applies a given function over lists derived from the nth members of an arbitrary list of (equal-length) lists. (Where lists are of uneven length, items beyond the maximum shared length are ignored). (a,b,c) (A,B,C) (1,2,3)4 (a,b,c) (A,B,C) (1,2,3)5 Nhưng một hàm chuyển vị có thể đơn giản hơn: (a,b,c) (A,B,C) (1,2,3)6 (a,b,c) (A,B,C) (1,2,3)5 Arturo[edit][edit](a,b,c) (A,B,C) (1,2,3)8 (a,b,c) (A,B,C) (1,2,3)5 AutoHotkey[edit][edit]Pseudo-arrays[edit][edit]Stringsplit tạo ra một mép giả aA1 bB2 cC30 Một mảng quá ngắn về sáng tạo sẽ trả lại các chuỗi trống khi cố gắng truy xuất các yếu tố tiếp theo. Hộp tin nhắn thứ 2 hiển thị: aA1 bB2 cC31 Mảng thực [chỉnh sửa][edit]Trong AutoHotKey_L, chúng ta có thể sử dụng các mảng thực (đối tượng) và vòng lặp cho. aA1 bB2 cC32 Đầu ra từ tập lệnh này giống hệt với cái đầu tiên. AWK[edit][edit]aA1 bB2 cC33 Axe[edit][edit]Lưu ý rằng trong ví dụ này, chúng tôi sử dụng một vài byte từ mỗi L₁, L₂ và L₃ để đơn giản. Trong thực tế, người ta sẽ muốn sắp xếp các mảng cho tất cả các phù hợp trong L₁ để tránh các vấn đề biến động với L₂ và L₃. aA1 bB2 cC34 Babel[edit][edit]Có hai cách để làm điều này trong Babel. Đầu tiên, bạn có thể chuyển đổi danh sách: aA1 bB2 cC35 Toán tử 'trans' thay thế nil trong các phần của mỗi cột được chuyển đổi bất cứ nơi nào một danh sách hàng ngắn hơn danh sách hàng dài nhất. Các ' Một giải pháp theo nghĩa đen hơn cho vấn đề như được trình bày sẽ được lặp lại trên mỗi danh sách bằng cách sử dụng toán tử CDRALL do người dùng định nghĩa: aA1 bB2 cC36 Giải pháp này chính thức giống hệt với đầu tiên và sẽ xử lý các danh sách các độ dài khác nhau bằng cách in chèn NIL và không in gì cho đầu đuôi aA1 bB2 cC37 Danh sách ngắn. BaCon[edit][edit]aA1 bB2 cC38 BASIC256[edit][edit]aA1 bB2 cC39 aA1 bB2 cC3 BBC BASIC [EDIT][edit]L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)1 Beads[edit][edit]Giải pháp này chiếm các mảng có độ dài khác nhau và nếu chúng được xen kẽ với các ký tự không xác định bằng cách thay thế chúng bằng không gian. L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)2 (a,b,c) (A,B,C) (1,2,3)5 Befunge[edit][edit]Không có khái niệm về kiểu dữ liệu mảng trong befunge, nhưng bạn thường lưu trữ các mảng của mình dưới dạng chuỗi dữ liệu trong không gian mã Befunge. Sau đó, bạn sẽ lặp qua phạm vi các chỉ số cần thiết để truy cập các mảng đó và sử dụng biến vòng lặp làm phần bù vào từng vùng dữ liệu. Đối với các mảng có độ dài khác nhau, bạn cần kiểm tra thủ công một chỉ mục ngoài phạm vi và đối phó với nó một cách thích hợp. L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)4 C[edit][edit]Với một số mảng, đặc biệt nếu chúng không đồng nhất, cách thông thường nhất để lặp qua tất cả chúng là chỉ cần sử dụng một biến chỉ mục. Xác định khi nào nên dừng thường được thực hiện theo một số cách cụ thể của ứng dụng. L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)5 (Lưu ý: Một số trình biên dịch có thể yêu cầu một lá cờ chấp nhận mã C hiện đại này, chẳng hạn như aA1 bB2 cC362.) Mặt khác, có thể viết một sơ đồ lặp theo thứ tự cao hơn, như được thể hiện trong ví dụ này. L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)6 Mảng ngắn nhất. C#[edit][edit]L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)7
L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)8
L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)9
aA1 bB2 cC30 cách sử dụng: aA1 bB2 cC31 C++[edit][edit]Với aA1 bB2 cC363S: aA1 bB2 cC32 Sử dụng các mảng tĩnh: aA1 bB2 cC33 C++11[edit][edit]Với aA1 bB2 cC363S: aA1 bB2 cC34 Sử dụng các mảng tĩnh: aA1 bB2 cC35 Với aA1 bB2 cC365S: aA1 bB2 cC36 Với aA1 bB2 cC365S bởi các chỉ mục: aA1 bB2 cC37 C++23[edit][edit]aA1 bB2 cC38 Chapel[edit][edit]aA1 bB2 cC39 Clojure[edit][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM0 Trình tự dừng lại khi danh sách ngắn nhất cạn kiệt. * Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM1 COBOL[edit][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM2 Lisp thông thường [Chỉnh sửa][edit]Sử dụng ứng dụng chức năng [Chỉnh sửa][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM3 Nếu danh sách có độ dài khác nhau, nó dừng lại sau cái ngắn nhất. Sử dụng Loop [Chỉnh sửa][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM4 Sử dụng DO [Chỉnh sửa][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM5 aA1 bB2 cC3 D[edit][edit]* Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM7 (a,b,c) (A,B,C) (1,2,3)5 Zip () cho phép chỉ định chính sách dừng. Theo mặc định, nó dừng lại khi phạm vi ngắn nhất bị cạn kiệt (giống như stoppingpolicy.shortest): * Loop over multiple arrays simultaneously 09/03/2017 LOOPSIM CSECT USING LOOPSIM,R12 base register LR R12,R15 LA R6,1 i=1 LA R7,3 counter=3 LOOP LR R1,R6 i SLA R1,1 *2 LH R2,R-2(R1) r(i) XDECO R2,PG edit r(i) LA R1,S-1(R6) @s(i) MVC PG+3(1),0(R1) output s(i) LA R1,Q-1(R6) @q(i) MVC PG+7(1),0(R1) output q(i) XPRNT PG,80 print s(i),q(i),r(i) LA R6,1(R6) i++ BCT R7,LOOP decrement and loop BR R14 exit S DC C'a',C'b',C'c' Q DC C'A',C'B',C'C' R DC H'1',H'2',H'3' PG DC CL80' ' buffer YREGS END LOOPSIM9 a A 1 b B 2 c C 30 Tiếp theo là một ngoại lệ với thông điệp "phạm vi độ dài không đồng đều được truyền đến ZIP". Ngoài ra còn có std.range.lockstep: a A 1 b B 2 c C 31 Mã cấp thấp hơn dừng ở độ dài ngắn nhất: a A 1 b B 2 c C 32 a A 1 b B 2 c C 33 Delphi[edit][edit]a A 1 b B 2 c C 34 Diego[edit][edit]a A 1 b B 2 c C 35 Diego không có vấn đề gì khi các mảng có độ dài khác nhau, các mục mảng "bị thiếu" sẽ được xử lý là trống. Lưu ý, aA1 bB2 cC367 sẽ trở thành aA1 bB2 cC368, nhưng vẫn có thể được coi là aA1 bB2 cC367. a A 1 b B 2 c C 36 a A 1 b B 2 c C 37 DWScript[edit][edit]Nếu các mảng không có cùng giới hạn, một chỉ mục ngoài ngoại lệ sẽ được kích hoạt khi cố gắng truy cập một phần tử không tồn tại. a A 1 b B 2 c C 38 E[edit][edit]E thiếu một cách tốt đẹp để làm điều này; Đây là [http://wiki.erights.org/wiki/parallel_itation để được sửa chữa, một khi chúng ta tìm ra những việc cần làm]. Tuy nhiên, việc lặp lại trong danh sách tạo ra các chỉ mục của nó dưới dạng các khóa, do đó, một thành ngữ không hoàn toàn khủng khiếp tồn tại: a A 1 b B 2 c C 39 Điều này rõ ràng sẽ thất bại nếu A2 hoặc A3 ngắn hơn A1 và bỏ qua các mục org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,00 Với một tiện ích lặp song song, chúng tôi có thể viết điều này: org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,01 aA1 bB2 cC370 chưa thể được xác định cho tất cả các bộ sưu tập (trừ bằng cách lặp lại từng cái và lưu trữ kết quả trong danh sách org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,02 Danh sách, như dưới đây. Cả một định nghĩa cho bất kỳ số lượng bộ sưu tập và hai org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,03 không có sự lộn xộn do xử lý một số lượng bộ sưu tập khác nhau. org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,04 (Điều này sẽ dừng lại khi kết thúc bộ sưu tập ngắn nhất.) EchoLisp[edit][edit]org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,05 Ecstasy[edit][edit]org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,06 Đầu ra: org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,07 Efene[edit][edit]org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,08 Nếu các danh sách không phải là cùng một độ dài, một lỗi được ném. Eiffel[edit][edit]org 100h lxi b,0 ; Let (B)C be the array index outer: lxi d,As ; Use DE to walk the array-of-arrays inner: xchg ; Swap DE and HL (array-of-array pointer into HL) mov e,m ; Load low byte of array pointer into E inx h mov d,m ; Load high byte of array pointer into D inx h xchg ; Array base in HL, array-of-array pointer in DE mov a,h ; Is HL 0? ora l jz azero ; If so, we are done. dad b ; Otherwise, add index to array base mov a,m ; Get current item (BC'th item of HL) call chout ; Output jmp inner ; Next array azero: mvi a,13 ; Print newline call chout mvi a,10 call chout inr c ; Increment index (we're only using the low byte) mvi a,Alen ; Is it equal to the length? cmp c jnz outer ; If not, get next item from all the arrays. ret ;;; Print character in A, saving all registers. ;;; This code uses CP/M to do it. chout: push psw ; CP/M destroys all registers push b ; Push them all to the stack push d push h mvi c,2 ; 2 = print character syscall mov e,a call 5 pop h ; Restore registers pop d pop b pop psw ret ;;; Arrays A1: db 'a','b','c' A2: db 'A','B','C' A3: db '1','2','3' Alen: equ $-A3 ;;; Zero-terminated array-of-arrays As: dw A1,A2,A3,09 aa1 BB2 CC3 Explanation[edit][edit]Khẳng định 'yêu cầu' thiết kế theo hợp đồng là một tuyên bố về tính chính xác của phần mềm. Nó nói rằng tất cả các mục trong `a_array 'phải có số lượng> 0 (không trống của loại giới hạn). Nếu bạn kiểm tra 'input_data', bạn sẽ thấy rằng Bộ sưu tập 1 không chỉ là "ABC", mà là "ABCDE" (5 mục phần tử ký tự trong một chuỗi giới hạn). Điều tương tự cũng đúng với mảng số cuối cùng, có 4 số nguyên. Điều này được thực hiện để chứng minh rằng mã 'ví dụ' đủ mạnh để lấy các biến thể trong các đầu vào về số lượng mục. Vòng lặp ⟳ ¦ ¦ ¦ (tượng trưng) đầu tiên tìm kiếm số lượng của bộ sưu tập nhỏ nhất (phút). Trong trường hợp này, mục giữa (#2) chỉ có 3 phần tử, vì vậy thói quen này sẽ chỉ xử lý 3 phần tử đầu tiên của mỗi bộ sưu tập trong mảng chứa. Tiếp theo, chúng tôi tạo chuỗi đầu ra trong 'result'. Cuối cùng, vòng lặp ⟳ ¦ ¦ (tượng trưng) cuối cùng có một vòng lặp lồng nhau. Vòng ngoài tính đếm các phần tử (1-3) và vòng lặp bên trong của các bộ sưu tập chứa, thêm phần tử thứ J của bộ sưu tập thứ i. Điều này lặp lại cho đến khi tất cả `j 'đã cạn kiệt cho tất cả' i '. Ela[edit][edit]aA1 bB2 cC30 Mã trên có thể được viết ngắn hơn. Đầu tiên không có nhu cầu trong danh sách ngay khi các chuỗi ở ELA có thể được coi là danh sách. Ngoài ra, thay vì LabMDA rõ ràng, người ta có thể sử dụng ứng dụng một phần và toán tử thành phần tiêu chuẩn: aA1 bB2 cC31 Elena[edit][edit]Elena 5.0 & nbsp;:
aA1 bB2 cC32 Sử dụng tiện ích mở rộng Zipby: aA1 bB2 cC33 aA1 bB2 cC3 Elixir[edit][edit]Danh sách chuỗi: aA1 bB2 cC35 char_list: aA1 bB2 cC36 Khi độ dài của danh sách khác nhau: aA1 bB2 cC37 Việc kết thúc zipping ngay khi bất kỳ sự phản đối nào hoàn thành. Erlang[edit][edit]Tùy chọn ngắn nhất: aA1 bB2 cC38 Tuy nhiên, vì mọi biểu thức trong Erlang phải trả lại một cái gì đó, in văn bản trả về 'ok'. Do đó, một danh sách có nhiều 'OK như có những dòng được in sẽ được tạo ra. Cách làm sạch kỹ thuật nhất về mặt kỹ thuật sẽ là với danh sách: Foreach/2, cũng đảm bảo thứ tự đánh giá: aA1 bB2 cC39 Nếu các danh sách không phải là cùng một độ dài, một lỗi được ném. Euphoria[edit][edit]Có rất nhiều cách để làm điều này. Tất cả bọn họ đều dựa vào những chuỗi thực sự 00Nếu tất cả chúng là "chuỗi", thì khá dễ dàng: 01Nếu không, và chuỗi khác được biết là chỉ chứa các số nguyên: 02Một giải pháp chung cho bất kỳ chuỗi ký tự hoặc số tùy ý nào có thể có một chút phức tạp. Điều này là do cách các chuỗi được lưu trữ và in ra. Một câu trả lời có thể là như sau, nếu bạn biết rằng chỉ sử dụng các ký tự chữ và số: 03Giống như trong Java, sử dụng các trích dẫn đơn xung quanh một ký tự cung cấp cho bạn "giá trị char" của nó. Tuy nhiên, trong Euphoria, chỉ đơn giản là mã của nhân vật trong ASCII. Với cả ba giải pháp trên, nếu bất kỳ chuỗi nào nhỏ hơn 04F#[edit][edit] 05Khi một chuỗi bị cạn kiệt, bất kỳ yếu tố còn lại trong các chuỗi khác đều bị bỏ qua. Factor[edit][edit] 06Fantom[edit][edit]Điều này sẽ dừng lại khi nó đến cuối danh sách ngắn nhất. 07Fermat[edit][edit] 08aa1 BB2 CC3 Forth[edit][edit] 09Fortran[edit][edit] 10Nếu các mảng có độ dài khác nhau (giả sử, Array NS không có phần tử thứ ba), thì khi lượt của nó xuất hiện, đơn vị lưu trữ tiếp theo cùng với phần tử thứ hai sẽ được truy cập, nội dung của nó được hiểu là một số nguyên và giá trị thập phân của nó được in. .. Nếu tuy nhiên, kiểm tra ràng buộc mảng được kích hoạt (hoặc có sơ đồ bảo vệ truy cập bộ nhớ sẽ phát hiện điều này), một tính năng không có sẵn thông qua nhiều trình biên dịch và không phải là mặc định cho phần còn lại, sau đó sẽ được phát hiện lỗi và chạy chấm dứt, có thể với một thông điệp có phần hữu ích. Nếu thay vì đọc hành động đã được lưu trữ một giá trị vào mảng, thì trong trường hợp không kiểm tra ràng buộc, thiệt hại tùy ý sẽ được thực hiện (để mã hoặc dữ liệu) có thể dẫn đến điều gì đó không ổn. Và nếu bạn may mắn, nó sẽ xảy ra nhanh chóng. FreeBASIC[edit][edit] 11 12Frink[edit][edit] 13FunL[edit][edit] 14aA1 bB2 cC3 Gambas[edit][edit]Nhấp vào liên kết này để chạy mã này 16Đầu ra: aA1 bB2 cC3 GAP[edit][edit] 18Go[edit][edit]"Mệnh đề phạm vi" của một câu lệnh chỉ nhìn vào một giá trị có thể đi được duy nhất (mảng, lát cắt, v.v.). Để truy cập ba song song, chúng phải được lập chỉ mục rõ ràng. Nếu aA1 bB2 cC371 hoặc aA1 bB2 cC372 ngắn hơn, chương trình sẽ hoảng loạn với "Lỗi thời gian chạy: chỉ mục ra khỏi phạm vi". Nếu aA1 bB2 cC371 hoặc aA1 bB2 cC372 dài hơn, các yếu tố bổ sung sẽ bị bỏ qua. Triết lý của Go là bạn nên kiểm tra rõ ràng bất kỳ điều kiện nào có ý nghĩa trong ứng dụng của bạn và xử lý rõ ràng bất kỳ lỗi nào là hợp lý. 19Golfscript[edit][edit] 20Nếu có các mảng có kích thước khác nhau, thì ngắn hơn được coi là mảng "null-bong". Groovy[edit][edit]Dung dịch: 21Bài kiểm tra: 22(a,b,c) (A,B,C) (1,2,3)5 Harbour[edit][edit]Sử dụng cho mỗi ... tuyên bố tiếp theo 24Đầu ra: 25"Mệnh đề phạm vi" của một câu lệnh chỉ nhìn vào một giá trị có thể đi được duy nhất (mảng, lát cắt, v.v.). Để truy cập ba song song, chúng phải được lập chỉ mục rõ ràng. Haskell[edit][edit]Nếu 26Nếu có các mảng có kích thước khác nhau, thì ngắn hơn được coi là mảng "null-bong". Dung dịch: 27Bài kiểm tra: 28Sử dụng cho mỗi ... tuyên bố tiếp theo Nếu các mảng không có độ dài bằng nhau, việc lặp lại sẽ dừng sau khi mục cuối cùng của mảng nhỏ hơn đã được xử lý; Bất kỳ mục bổ sung nào của các mảng dài hơn đều bị bỏ qua (hoặc nói cách khác, bộ đếm lặp không bao giờ vượt quá độ dài của mảng nhỏ hơn, do đó ngăn chặn lỗi 'ra khỏi phạm vi phụ'). 29Haxe[edit][edit] 30HicEst[edit][edit] 31Biểu tượng và Unicon [Chỉnh sửa][edit]Giải pháp đầu tiên sử dụng các biểu thức đồng để tạo ra đánh giá song song. 32Giải pháp thứ hai giống như các ngôn ngữ thủ tục khác và cũng xử lý các độ dài danh sách không đồng đều. 33[http://www.cs.arizona.edu/icon/l Library/procs/numbers.htm sử dụng tối đa từ các số] J[edit][edit]Cho các mảng các loại khác nhau: 34Cách tiếp cận này hoạt động bằng cách thể hiện các chữ số là ký tự. Trong đó các mảng đều cùng loại (tất cả số hoặc tất cả chuỗi): 35Cả hai triển khai này đều từ chối các mảng với độ dài mâu thuẫn. Các tùy chọn khác bao gồm: 36 37Các mảng ngắn thực hiện này với không gian. Hoặc: 38Việc triển khai này đặt từng mục từ mỗi danh sách ban đầu vào một hộp và tạo thành một mảng các hộp. . Mảng bằng cách cung cấp các hộp trống để biểu diễn các yếu tố bị thiếu. . Java[edit][edit] 39JavaScript[edit][edit]Imperative[edit][edit]Điều này lặp lại các chỉ số của mảng đầu tiên và sử dụng nó để lập chỉ mục vào các chỉ số khác. 40Nếu các mảng B hoặc C quá "ngắn", bạn sẽ thấy chuỗi "không xác định" xuất hiện trong đầu ra. Ngoài ra, chúng ta có thể làm tổ một vài cuộc gọi đến .foreach (): một cho mảng ba mảng và một cho mỗi trong ba vị trí chỉ số:.forEach(): one for the array of three arrays, and one for each of the three index positions: 41Thành phần chức năng [Chỉnh sửa][edit]ES5[edit][edit]Các tùy chọn chức năng bao gồm gấp lại trên một mảng các mảng với mảng tích hợp.Reduce (), sử dụng hàm zipwith () của arity phù hợp hoặc ánh xạ qua đầu ra của hàm zip () đầu ra của một hàm zip ().Array.reduce(), using a zipWith() function of suitable arity, or mapping over the output of a generic (any arity) zip() function. . Giảm / gấp: 42Một zipwith cố định: 43Hoặc chúng ta có thể viết một ziplistswith chung áp dụng một số danh sách Overs hàm được cung cấp có nguồn gốc từ các thành viên thứ n của một danh sách danh sách (độ dài bằng nhau) tùy ý.zipListsWith applying some supplied function overs lists derived from the nth members of an arbitrary list of (equal-length) lists. 44ES6[edit][edit]Bằng cách chuyển vị: 45(a,b,c) (A,B,C) (1,2,3)5 jq[edit][edit]Giải pháp sau đây dựa trên giả định rằng tất cả các mảng có thể được trình bày dưới dạng một mảng mảng. Điều này cho phép bất kỳ số lượng mảng được xử lý. Cụ thể, ZIP/0 mong đợi một mảng từ 0 hoặc nhiều mảng trở thành đầu vào của nó. Mảng đầu tiên xác định số lượng mục trong đầu ra; null được sử dụng để đệm. 47Ví dụ 1: 48 49Để có được đầu ra nhỏ gọn được sử dụng trong mô tả nhiệm vụ, chúng ta có thể lọc kết quả thông qua chức năng "in đẹp": 50Ví dụ 2: 51 52Như đã đề cập, định nghĩa trên của các đặc quyền zip/0 đầu tiên 53và nếu các mảng tiếp theo có độ dài khác nhau, NULL được sử dụng làm 54Do đó: 55Sản xuất: 56Xử lý đầu vào Jagged Một cách tiếp cận thay thế sẽ được sử dụng một biến thể zip/0 mà tất cả các mảng đều ngắn hơn so với dài nhất với nulls. Đây là một biến thể như vậy: An alternative approach would be use a variant of zip/0 that pads all arrays shorter than the longest with nulls. Here is such a variant: 57Jsish[edit][edit] 58 59Julia[edit][edit]Với chức năng bậc cao hơn:: 60Với một vòng lặp:: 61(a,b,c) (A,B,C) (1,2,3)5 K[edit][edit] 63 64Nếu độ dài của các mảng là khác nhau, thì k croaks với "lỗi chiều dài". Sau đây là một cách tiếp cận chung hơn trong đó Tính độ dài tối thiểu của các mảng và được sử dụng để lập chỉ mục các phần tử đầu tiên trong mỗi mảng. 65 66Nếu các mảng thuộc loại khác nhau, thì các mảng phải được chuyển đổi thành chuỗi. 67Kotlin[edit][edit] 68 69Lambdatalk[edit][edit] 70LFE[edit][edit] 71Nếu bất kỳ danh sách dữ liệu nào khác nhau về kích thước khác, kết quả sẽ in ra danh sách dữ liệu ngắn nhất và sau đó nêu lỗi aA1 bB2 cC375. Erlang, và do đó LFE, có aA1 bB2 cC376 và aA1 bB2 cC377 để làm việc với 2 và 3 bộ dữ liệu đồng thời tương ứng. Nếu bạn cần nhiều hơn thế, bạn sẽ cần tạo chức năng "zip" của riêng mình với một cái gì đó như aA1 bB2 cC378. Liberty Basic [Chỉnh sửa][edit] 72Lisaac[edit][edit] 73LiveCode[edit][edit]Mảng 74Xử lý "Danh sách" 75Đầu ra - Cả hai hành xử tương tự cho bài tập này. (a,b,c) (A,B,C) (1,2,3)5 Khi có ít phần tử hơn phần đầu tiên (hoặc bất kỳ vòng lặp dựa trên), LiveCode sẽ thêm giá trị "trống". Nếu chúng ta thêm "D" vào Lowa và 4 vào NUM, chúng ta sẽ nhận được những điều sau: 77Logo[edit][edit] 78Lua[edit][edit]Điều này có thể được thực hiện với một vòng lặp đơn giản: 79Nhưng nó có thể là sự khai sáng hơn (và phù hợp với tinh thần của thử thách) để sử dụng chung chung cho: 80Maple[edit][edit] 81aA1 bB2 cC3 Ngôn ngữ Mathicala/Wolfram [Chỉnh sửa][edit]Điều này có thể được thực hiện với một chức năng tích hợp: 83Tất cả các đối số phải là danh sách có cùng độ dài. Mercury[edit][edit] 84Gia đình thủ tục Foldl_correspesing đều ném một phần mềm_error/1 ngoại lệ nếu độ dài của danh sách không giống nhau. Modula-3[edit][edit] 85MUMPS[edit][edit]Các mảnh của phiên bản chuỗi 86Khi không có đủ các phần tử, một chuỗi null sẽ được trả về từ hàm mảnh $. 87Phiên bản mảng cục bộ 88Dòng nhận xét sẽ gây ra lỗi khi thử 89Cú pháp tương tự này được sử dụng cho các toàn cầu (các biến vĩnh viễn, có một cái chăm sóc "^" là ký tự đầu tiên). 90Nanoquery[edit][edit]Bản dịch của: Java: Java 91Nemerle[edit][edit]Nó "cảm thấy" tốt hơn khi sử dụng zip () cho điều này, thật không may, zip () tích hợp chỉ mất hai danh sách. 92Xen kẽ: Bản dịch của: C#: C# 93NetRexx[edit][edit] 94 95NewLISP[edit][edit] 96Nim[edit][edit] 97NS-HUBASIC[edit][edit] 98Oberon-2[edit][edit]Hoạt động với OO2C phiên bản 2 99Output: aA1 bB2 cC3 Objeck[edit][edit](a,b,c) (A,B,C) (1,2,3)01 Nếu các mảng có độ dài khác nhau, thì một lỗi ngoài giới hạn sẽ được nêu ra. OCaml[edit][edit]Một giải pháp ngay lập tức: (a,b,c) (A,B,C) (1,2,3)02 Một giải pháp chung hơn có thể là sử dụng một chức năng lặp đi lặp lại trong danh sách các mảng: (a,b,c) (A,B,C) (1,2,3)03 Chức năng này làm tăng ngoại lệ không hợp lệ (a,b,c) (A,B,C) (1,2,3)04 và có chữ ký này: (a,b,c) (A,B,C) (1,2,3)05 Cách sử dụng nó với các mảng A1, A2 và A3 được xác định trước: (a,b,c) (A,B,C) (1,2,3)06 Oforth[edit][edit]Nếu các mảng không có cùng kích thước, Zipall sẽ giảm xuống kích thước tối thiểu (a,b,c) (A,B,C) (1,2,3)07 aA1 bB2 cC3 ooRexx[edit][edit](a,b,c) (A,B,C) (1,2,3)09 Oz[edit][edit](a,b,c) (A,B,C) (1,2,3)10 Vòng lặp sẽ dừng lại khi danh sách ngắn nhất cạn kiệt. PARI/GP[edit][edit]Phiên bản này dừng lại khi vectơ ngắn nhất cạn kiệt. (a,b,c) (A,B,C) (1,2,3)11 Phiên bản này in trống khi một vector cạn kiệt. (a,b,c) (A,B,C) (1,2,3)12 Pascal[edit][edit]Xem Delphi Perl[edit][edit](a,b,c) (A,B,C) (1,2,3)13 Việc triển khai này sẽ ngừng sản xuất các mặt hàng khi mảng ngắn nhất kết thúc. Phix[edit][edit]Giả sử A và B là chuỗi và C là một chuỗi số nguyên. Nếu các đối số không phải là cùng một độ dài, các nỗ lực truy xuất các phần tử không tồn tại có thể kích hoạt lỗi thời gian chạy nghiêm trọng, phải không cho Min (). Trong Print3, khá rõ ràng, chúng tôi chỉ trích xuất đến độ dài ngắn nhất. Thói quen tích hợp () thường trình có thể thực hiện một tác vụ tương tự: Tôi đã cung cấp một độ lệch không gian và thay thế mảng thứ 3 bằng một chuỗi để đảm bảo chúng tôi lấy lại chuỗi và mở rộng nó để hiển thị cách sử dụng giá trị mặc định đó cho các mục nhập ra khỏi đầu của hai mảng đầu tiên. (a,b,c) (A,B,C) (1,2,3)14 (a,b,c) (A,B,C) (1,2,3)15 Phixmonti[edit][edit](a,b,c) (A,B,C) (1,2,3)16 PHP[edit][edit](a,b,c) (A,B,C) (1,2,3)17 Việc triển khai này ném một ngoại lệ nếu các mảng không phải là cùng một độ dài. Picat[edit][edit]PICAT có một aA1 bB2 cC379 tích hợp chỉ hoạt động với danh sách (không phải mảng). Nó trả về một tuple mảng ( aA1 bB2 cC380) và không phải là một danh sách ( aA1 bB2 cC381), đây là một gotcha điển hình. Đối với nhiệm vụ này, một vòng lặp foreach và danh sách comprenhension được hiển thị. Nếu các danh sách/mảng có độ dài không đồng đều, thì các phần tử trong các mảng dài hơn bị bỏ qua. (a,b,c) (A,B,C) (1,2,3)18 (a,b,c) (A,B,C) (1,2,3)19 PicoLisp[edit][edit](a,b,c) (A,B,C) (1,2,3)20 Độ dài của danh sách đối số đầu tiên kiểm soát hoạt động. Nếu các danh sách tiếp theo dài hơn, các giá trị còn lại của chúng bị bỏ qua. Nếu chúng ngắn hơn, NIL được chuyển đến chức năng. Pike[edit][edit]Có thể được thực hiện với cho, nhưng các foreach bao gồm bộ đếm chỉ mục tránh các lỗi thông thường (a,b,c) (A,B,C) (1,2,3)21 aA1 bB2 cC3 PL/I[edit][edit](a,b,c) (A,B,C) (1,2,3)23 PostScript[edit][edit](a,b,c) (A,B,C) (1,2,3)24 PowerBASIC[edit][edit](a,b,c) (A,B,C) (1,2,3)25 PowerShell[edit][edit]Một chức năng 'zip' giá rẻ và đáng yêu: (a,b,c) (A,B,C) (1,2,3)26 (a,b,c) (A,B,C) (1,2,3)27 (a,b,c) (A,B,C) (1,2,3)28 (a,b,c) (A,B,C) (1,2,3)29 aA1 bB2 cC3 Prolog[edit][edit]Hoạt động với SWI-Prolog (a,b,c) (A,B,C) (1,2,3)31 (a,b,c) (A,B,C) (1,2,3)32 PureBasic[edit][edit](a,b,c) (A,B,C) (1,2,3)33 Nếu chúng có độ dài khác nhau, có hai trường hợp: A () là một trường hợp ngắn nhất: chỉ các phần tử lên đến chỉ số tối đa của A () Có thể hoạt động vì có một số "không gian trống" sau khi kết thúc bộ nhớ mảng được gán. Ví dụ: nếu A có kích thước 4, dòng DD4 cũng sẽ được in. Kích thước 20 dẫn đến một sự cố, điều này là do Redim trở nên chậm nếu mọi khi có sự thay đổi đối với kích thước mảng bộ nhớ mới phải được phân bổ. Python[edit][edit]Sử dụng zip (): (a,b,c) (A,B,C) (1,2,3)34 Nếu danh sách có độ dài khác nhau, zip () sẽ dừng sau phần ngắn nhất. Sử dụng bản đồ (): (a,b,c) (A,B,C) (1,2,3)35 Nếu danh sách có độ dài khác nhau, bản đồ () trong Python 2.x giả vờ rằng các danh sách ngắn hơn được mở rộng với không có mục nào; Bản đồ () trong Python 3.x dừng sau khi ngắn nhất. Sử dụng itertools.imap () (Python 2.x): (a,b,c) (A,B,C) (1,2,3)36 Nếu danh sách là độ dài khác nhau, imap () dừng sau khi ngắn nhất bị cạn kiệt. Python 3.x có zip_longest, lấp đầy các lần lặp ngắn hơn với đối số fillvalue của nó mặc định là không có (tương tự như hành vi của map () trong python 2.x): (a,b,c) (A,B,C) (1,2,3)37 (Tương đương Python 2.x là itertools.izip_longest) Quackery[edit][edit]Mã được trình bày ở đây sẽ lặp lại nhiều lần so với số lượng ký tự trong tổ đầu tiên (tức là "ABC" trong ví dụ). Nếu một trong hai tổ còn lại ngắn hơn đầu tiên thì chương trình sẽ báo cáo vấn đề. (a,b,c) (A,B,C) (1,2,3)38 aA1 bB2 cC3 R[edit][edit](a,b,c) (A,B,C) (1,2,3)40 Điều tương tự như một cuộc gọi chức năng duy nhất. Nhưng ném lỗi nếu các mảng khác nhau về chiều dài. (a,b,c) (A,B,C) (1,2,3)41 Racket[edit][edit]Cordet cho các vòng lặp có thể lặp qua một số chuỗi tùy ý cùng một lúc: (a,b,c) (A,B,C) (1,2,3)42 Vòng lặp dừng ngay khi chuỗi đầu tiên kết thúc - trong trường hợp trên tôi có thể lặp lại mãi mãi nhưng vòng lặp dừng khi chúng tôi đến cuối danh sách/vectơ/chuỗi. (Cùng một giữ cho nhiều container có kích thước khác nhau.) Raku[edit][edit](trước đây là Perl 6) Làm việc với: Phiên bản Rakudo 2015.12: rakudo version 2015.12 Lưu ý rằng tất cả các công việc sau đây với bất kỳ đối tượng có thể lặp lại, (mảng, danh sách, phạm vi, trình tự; bất cứ điều gì thực hiện vai trò có thể lặp lại), không chỉ là mảng. Chức năng cơ bản [Chỉnh sửa][edit](a,b,c) (A,B,C) (1,2,3)43 Nhà điều hành aA1 bB2 cC382 ngừng phát ra các mục ngay khi danh sách đầu vào ngắn nhất bị cạn kiệt. Tuy nhiên, danh sách ngắn dễ dàng được mở rộng bằng cách sao chép tất cả hoặc một phần của danh sách hoặc bằng cách nối thêm bất kỳ loại trình tạo danh sách lười biếng nào để cung cấp các giá trị mặc định khi cần thiết. Vì aA1 bB2 cC382 sẽ trả về danh sách các danh sách (trong ví dụ này, danh sách đầu tiên là aA1 bB2 cC384, dấu ngoặc đơn được sử dụng xung quanh trong chữ ký Lambda aA1 bB2 cC385 để giải nén danh sách cho mỗi lần lặp. Bao thanh toán kết nối [chỉnh sửa][edit]Lưu ý rằng chúng ta cũng có thể đưa ra sự kết hợp bằng cách làm cho bộ điều khiển Z áp dụng toán tử ~ nối trên mỗi bộ ba: (a,b,c) (A,B,C) (1,2,3)44 Chúng tôi cũng có thể sử dụng chuỗi zip-to với bộ điều khiển giảm: (a,b,c) (A,B,C) (1,2,3)45 Chúng tôi cũng có thể viết ra điều đó "tay dài": (a,b,c) (A,B,C) (1,2,3)46 Trả về kết quả chính xác tương tự vì vậy nếu bạn không thoải mái với các toán tử súc tích, bạn có một sự lựa chọn. Một danh sách và các chỉ số của nó [chỉnh sửa][edit]Trường hợp phổ biến của việc lặp lại trong danh sách và danh sách các chỉ số của nó có thể được thực hiện bằng cách sử dụng cùng một phương thức: (a,b,c) (A,B,C) (1,2,3)47 hoặc bằng cách sử dụng phương thức aA1 bB2 cC386 (khóa và giá trị) trong danh sách (và bỏ dấu ngoặc đơn vì danh sách được trả về bởi aA1 bB2 cC386 là một danh sách phẳng): (a,b,c) (A,B,C) (1,2,3)48 Lặp lại cho đến khi tất cả kiệt sức [chỉnh sửa][edit]Nếu bạn có các danh sách có kích thước khác nhau mà bạn muốn lấy giá trị từ mỗi lần lặp, nhưng muốn tiếp tục cho đến khi tất cả các danh sách đã cạn kiệt, chúng tôi có aA1 bB2 cC388.all of the lists are exhausted, we have aA1 bB2 cC388. (a,b,c) (A,B,C) (1,2,3)49 (a,b,c) (A,B,C) (1,2,3)50 Red[edit][edit]Từ lặp lại đánh giá một khối nhất định! Một số lần được chỉ định và phơi bày giá trị đếm cho khối! được thực hiện. Khi một biến được sử dụng trong một ký hiệu đường dẫn, chúng tôi đặt một đại tràng trước nó. :phản đối (a,b,c) (A,B,C) (1,2,3)51 REXX[edit][edit]cùng một mảng kích thước [chỉnh sửa][edit]Nếu bất kỳ phần tử nào của mảng bị thiếu hoặc đó là một danh sách ngắn, một trống được thay thế để giữ lại độ trung thực thị giác trong đầu ra. Khi & nbsp; tất cả & nbsp; Các yếu tố trống, sau đó nó biểu thị phần cuối của mảng. (a,b,c) (A,B,C) (1,2,3)52 đầu ra aA1 bB2 cC3 Mảng có kích thước khác nhau [Chỉnh sửa][edit]Trong ví dụ này, hai trong số các mảng được mở rộng (qua ví dụ đầu tiên). Cũng lưu ý rằng Rexx không yêu cầu báo giá xung quanh các số không âm (chúng là tùy chọn). (a,b,c) (A,B,C) (1,2,3)54 đầu ra (a,b,c) (A,B,C) (1,2,3)55 Mảng có kích thước khác nhau [Chỉnh sửa][edit]Trong ví dụ này, hai trong số các mảng được mở rộng (qua ví dụ đầu tiên). Cũng lưu ý rằng Rexx không yêu cầu báo giá xung quanh các số không âm (chúng là tùy chọn). đầu ra (a,b,c) (A,B,C) (1,2,3)57 Mảng có kích thước khác nhau [Chỉnh sửa][edit](a,b,c) (A,B,C) (1,2,3)58 đầu ra (a,b,c) (A,B,C) (1,2,3)59 Ring[edit][edit](a,b,c) (A,B,C) (1,2,3)60 Ruby[edit][edit](a,b,c) (A,B,C) (1,2,3)61 Mảng có kích thước khác nhau [Chỉnh sửa] (a,b,c) (A,B,C) (1,2,3)62 Trong ví dụ này, hai trong số các mảng được mở rộng (qua ví dụ đầu tiên). Cũng lưu ý rằng Rexx không yêu cầu báo giá xung quanh các số không âm (chúng là tùy chọn). Danh sách có kích thước khác nhau [Chỉnh sửa] (a,b,c) (A,B,C) (1,2,3)63 (a,b,c) (A,B,C) (1,2,3) 56[edit](a,b,c) (A,B,C) (1,2,3)64 Rust[edit][edit](a,b,c) (A,B,C) (1,2,3)65 (a,b,c) (A,B,C) (1,2,3)5 Salmon[edit][edit](a,b,c) (A,B,C) (1,2,3)67 Phương pháp thành ngữ cho danh sách [Chỉnh sửa] (a,b,c) (A,B,C) (1,2,3)68 Sather[edit][edit](a,b,c) (A,B,C) (1,2,3)69 Scala[edit][edit](a,b,c) (A,B,C) (1,2,3)70 Scheme[edit][edit]hoặc (a,b,c) (A,B,C) (1,2,3)71 Cả hai vòng này đều in aA1 bB2 cC389, aA1 bB2 cC390, aA1 bB2 cC391. (a,b,c) (A,B,C) (1,2,3)72 Trình lặp tương tự cho vectơ, aA1 bB2 cC398 và aA1 bB2 cC399: (a,b,c) (A,B,C) (1,2,3)73 Lưu ý, các danh sách hoặc vectơ phải có cùng độ dài. Sidef[edit][edit]Cách đơn giản nhất là bằng cách sử dụng phương thức mảng.zip {}: (a,b,c) (A,B,C) (1,2,3)74 aA1 bB2 cC3 Smalltalk[edit][edit](a,b,c) (A,B,C) (1,2,3)76 Nếu INDEX I không bị ràng buộc, một lỗi thời gian chạy được nêu ra. Trên thực tế, không cần phải có các đơn đặt hàng thêm như trong ví dụ trên. Ngoài ra, hầu hết các con số nhỏ (tất cả?) Có thể nối các args không chuỗi. Ít nhất là trong ST/X, các tác phẩm sau ¹: (a,b,c) (A,B,C) (1,2,3)77 Một giải pháp khác là sử dụng một điều tra viên đa thu thập, che giấu quyền truy cập phần tử (trong suốt cho các phần tử được lưu trữ bên trong bộ sưu tập): (a,b,c) (A,B,C) (1,2,3)78 1) Sự kết hợp của các đối tượng số nguyên như được hiển thị ở trên có thể yêu cầu thay đổi trong việc triển khai, dấu phẩy), để gửi "asstring" đến đối số. ML tiêu chuẩn [Chỉnh sửa][edit]Mã dưới đây sẽ kết hợp tùy ý nhiều danh sách các chuỗi vào một danh sách duy nhất với độ dài bằng với danh sách ngắn nhất. (a,b,c) (A,B,C) (1,2,3)79 Stata[edit][edit]Sử dụng một biến chỉ mục. (a,b,c) (A,B,C) (1,2,3)80 Mata[edit][edit](a,b,c) (A,B,C) (1,2,3)81 SuperCollider[edit][edit]Sử dụng ba biến và lập chỉ mục (SuperCollider đăng câu lệnh cuối cùng trong bản sao) (a,b,c) (A,B,C) (1,2,3)82 Một cách viết thành ngữ hơn, độc lập với số lượng kích thước: (a,b,c) (A,B,C) (1,2,3)83 Hoặc đơn giản hơn: (a,b,c) (A,B,C) (1,2,3)84
(a,b,c) (A,B,C) (1,2,3)85 Độc lập với kích thước: (a,b,c) (A,B,C) (1,2,3)86 Swift[edit][edit](a,b,c) (A,B,C) (1,2,3)87 (a,b,c) (A,B,C) (1,2,3)5 Tailspin[edit][edit]Lặp lại đơn giản nhất với một "vòng lặp" thông thường sẽ lỗi ở kích thước không đồng đều (a,b,c) (A,B,C) (1,2,3)89 aA1 bB2 cC3 Một phương thức chuyển vị đơn giản cung cấp cùng một đầu ra và cũng lỗi ở kích thước không đồng đều (a,b,c) (A,B,C) (1,2,3)91 Một chuyển vị phức tạp hơn sử dụng "foreach" phù hợp hơn với đề xuất nhiệm vụ và xử lý các mảng không đều (a,b,c) (A,B,C) (1,2,3)92 (a,b,c) (A,B,C) (1,2,3)93 Tcl[edit][edit](a,b,c) (A,B,C) (1,2,3)94 Nếu danh sách có độ dài khác nhau, hướng dẫn sử dụng [1] nói: "Tổng số lần lặp vòng lặp đủ lớn để sử dụng hết tất cả các giá trị từ tất cả các danh sách giá trị. Nếu một danh sách giá trị không chứa đủ các phần tử cho mỗi biến vòng lặp của nó Trong mỗi lần lặp, các giá trị trống được sử dụng cho các phần tử bị thiếu. " TorqueScript[edit][edit](a,b,c) (A,B,C) (1,2,3)95 TUSCRIPT[edit][edit](a,b,c) (A,B,C) (1,2,3)96 (a,b,c) (A,B,C) (1,2,3)97 TXR[edit][edit]Ngôn ngữ mẫu [Chỉnh sửa][edit](a,b,c) (A,B,C) (1,2,3)98 TXR LISP, sử dụng ________ 400 [Chỉnh sửa][edit]Ở đây chúng tôi thực sự lặp lại bốn điều: ba chuỗi và một danh sách vô hạn của Newlines. Đầu ra được xây dựng dưới dạng một đối tượng chuỗi cuối cùng được in trong một lần. (a,b,c) (A,B,C) (1,2,3)99 TXR LISP, sử dụng ________ 401 [Chỉnh sửa][edit]aA1 bB2 cC300 Dịch thuật của Sơ đồ [Chỉnh sửa][edit]aA1 bB2 cC301 Dịch logo [Chỉnh sửa][edit]Dịch: logo: Logo aA1 bB2 cC302 aA1 bB2 cC303 TypeScript[edit][edit]aA1 bB2 cC304 aA1 bB2 cC3 Unix Shell [Chỉnh sửa][edit]Với vỏ Bourne, vòng lặp aA1 bB2 cC344 (từ vòng lặp/foreach#unix shell) chỉ có thể lặp lại một danh sách. Chúng tôi sử dụng một chỉ mục L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)03 để truy cập các danh sách khác: L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)04 tải các tham số vị trí và L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)05 chuyển phần tử của chúng tôi sang L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)06. aA1 bB2 cC306 aA1 bB2 cC3 Khi các danh sách có độ dài khác nhau, mã này sử dụng độ dài của danh sách aA1 bB2 cC308 Và danh sách ngắn hơn cho các chuỗi trống thêm. Lấy cảm hứng từ ví dụ trước, dưới đây là cách lặp qua hai mảng đồng thời bằng cách sử dụng L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)07. Nó ít chung hơn so với ví dụ trước nhưng nó ngắn hơn và hoạt động tốt. aA1 bB2 cC309 aA1 bB2 cC310Some Shells có mảng thực, vì vậy việc lặp lại đơn giản và dễ dàng hơn nhiều. Some shells have real arrays, so the iteration is much more simple and easy. aA1 bB2 cC311 aA1 bB2 cC3 aA1 bB2 cC313 Tác phẩm với: ZSH: zsh aA1 bB2 cC314 C shell [Chỉnh sửa][edit]Sử dụng chiều dài của mảng a. Các mảng dài hơn bỏ qua các phần tử bổ sung của chúng, nhưng các mảng ngắn hơn buộc shell phải thoát với một lỗi như B: Subscript ra khỏi phạm vi. aA1 bB2 cC315 Ursa[edit][edit]Vòng lặp qua nhiều mảng trong một phiên tương tác: aA1 bB2 cC316 Nếu một trong hai mảng nhỏ hơn (kích thước A), thì một chỉ mục được ném. Điều này có thể được bắt với một khối L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)08. Ursala[edit][edit]Tính chuyển vị của danh sách được hình thành của ba danh sách. Nếu chúng có độ dài không đồng đều, một ngoại lệ sẽ xảy ra. aA1 bB2 cC317 aA1 bB2 cC3 Vala[edit][edit]aA1 bB2 cC319 VBA[edit][edit]Làm việc với: VBA Phiên bản VBA Excel 2013: VBA version VBA Excel 2013 aA1 bB2 cC320 aA1 bB2 cC3 VBScript[edit][edit]aA1 bB2 cC322 aA1 bB2 cC3 Visual Basic .Net [Chỉnh sửa][edit]Hai triển khai: Một xác định ngắn nhất trong số các mảng và sử dụng một vòng đơn giản cho vòng lặp với các truy cập phần tử cho mỗi mảng một cách riêng biệt; người ta sử dụng enumable.zip (chỉ có thể zip hai chuỗi cùng một lúc) hai lần để tạo 3 bộ. Enumable.zip dừng khi một trong hai nguồn hết các yếu tố, do đó, hành vi của hai triển khai là giống hệt nhau đối với các mảng có độ dài khác nhau. aA1 bB2 cC324 aA1 bB2 cC325 Visual FoxPro [Chỉnh sửa][edit]aA1 bB2 cC326 aA1 bB2 cC327 V (Vlang) [Chỉnh sửa][edit]aA1 bB2 cC328 Wart[edit][edit]aA1 bB2 cC329 Wren[edit][edit]Kịch bản sau đây sẽ hoạt động như mong đợi với độ dài của A1 và A2 ít nhất bằng chiều dài của A3. Nếu không, nó sẽ tạo ra một 'chỉ số ngoài giới hạn'. aA1 bB2 cC330 aA1 bB2 cC3 Hội đồng x86 [Chỉnh sửa][edit]aA1 bB2 cC332 XBasic[edit][edit]aA1 bB2 cC333 XPL0[edit][edit]aA1 bB2 cC334 aA1 bB2 cC3 Hội đồng Z80 [Chỉnh sửa][edit]aA1 bB2 cC336 aA1 bB2 cC337 Chương trình chỉ được viết để hiển thị 3 ký tự đầu tiên. Nếu chúng có độ dài khác nhau, các ký tự sai (hoặc các byte ngẫu nhiên bên ngoài chương trình) sẽ được đọc, tùy thuộc vào mảng nào "hết" trước. Ba mảng được xác định với Chỉ thị L(x, y, z) zip(‘abc’, ‘ABC’, ‘123’) print(x‘’y‘’z)09 được lưu trữ tuần tự. zkl[edit][edit]aA1 bB2 cC338 hoặc aA1 bB2 cC339 aA1 bB2 cC3 Zip [with] dừng ở cuối chuỗi ngắn nhất, có nghĩa là nó có thể hoạt động với các chuỗi vô hạn Zig[edit][edit]aA1 bB2 cC341 ZX Spectrum Basic [Chỉnh sửa][edit]aA1 bB2 cC342 Đơn giản hóa aA1 bB2 cC343 Làm thế nào để lặp qua các yếu tố mảng javascript?Làm thế nào để lặp qua một mảng với một vòng lặp foreach trong JavaScript. Phương thức mảng foreach () Loop's thông qua bất kỳ mảng nào, thực hiện một hàm được cung cấp một lần cho mỗi phần tử mảng theo thứ tự chỉ mục tăng dần. Hàm này được gọi là hàm gọi lại.The array method forEach() loop's through any array, executing a provided function once for each array element in ascending index order. This function is known as a callback function.
Vòng lặp nào là tốt nhất cho mảng trong JavaScript?Vòng lặp nhanh nhất là một vòng lặp, cả có và không có độ dài bộ nhớ đệm mang lại hiệu suất thực sự tương tự..... Vòng lặp trong khi giảm chậm hơn khoảng 1,5 lần so với vòng lặp .. Một vòng lặp sử dụng hàm gọi lại (như foreach tiêu chuẩn), chậm hơn khoảng 10 lần so với vòng lặp .. Điều gì xảy ra nếu chúng ta thêm hai mảng trong JavaScript?Phương thức Concat () được sử dụng để hợp nhất hai hoặc nhiều mảng.Phương pháp này không thay đổi các mảng hiện có, mà thay vào đó trả về một mảng mới.returns a new array.
Cách đơn giản nhất để lặp qua một mảng là gì?Các phương thức foreach () cung cấp một cách đơn giản hơn để lặp lại các mảng và danh sách âm thanh trong khi vẫn có quyền truy cập vào chỉ mục.Bạn chuyển một hàm gọi lại vào phương thức foreach ().Bản thân cuộc gọi lại chấp nhận ba đối số: mục hiện tại trong vòng lặp, chỉ mục của mục hiện tại trong vòng lặp và chính mảng. |