Menghemat waktu dan usaha dengan ulangi AppleScript loop
() translation by (you can also view the original English article)
Melanjutkan sepanjang dalam serangkaian artikel AppleScript kami terus-menerus, hari ini kita akan belajar tentang kekuatan loop ulangi, yang dapat menyelamatkan Anda ton usaha dengan mengotomatisasi tugas-tugas yang berulang dan kelompok perintah. Setelah Anda belajar untuk menggunakan mengulangi, Anda dapat secara signifikan mengurangi jumlah pekerjaan itu diperlukan untuk mengotomatisasi tugas-tugas, yang diterjemahkan menjadi produktivitas yang lebih cepat, lebih mudah pengkodean dan lebih tinggi.
Lebih besar AppleScript tutorial
Sebelum kita mulai dengan belajar tentang ulangi loops, pastikan untuk memeriksa beberapa tutorial AppleScript kami sebelumnya.
- Pemula Ultimate Panduan untuk AppleScript
- Teknik-teknik canggih AppleScript
- Jika dan jika lain: pernyataan bersyarat AppleScript
- Peluncuran aplikasi favorit Anda dalam kelompok dengan AppleScript
Ulangi terdengar sukacita
Jika Anda melakukannya dengan benar pertama kali, bukan sekali cukup?
Jika Anda pernah melakukan apapun pemrograman atau scripting sebelumnya, maka Anda tahu bahwa loop mutlak penting untuk mencapai hampir semua prestasi yang signifikan. Namun, jika Anda baru ide pemrograman, Anda mungkin bertanya-tanya mengapa sih Anda pernah ingin mengulangi sesuatu. Jika Anda melakukannya dengan benar pertama kali, bukan sekali cukup?
Jawabannya tentu saja terletak pada kenyataan bahwa kita sering bekerja dengan sejumlah besar data. Jika Anda memiliki lima ratus gambar dalam folder dan ingin melakukan sesuatu untuk setiap satu dari mereka, maka Anda dapat mengetikkan perintah yang sama lima ratus kali, menargetkan pada file yang berbeda setiap kali, atau menggunakan loop ulangi dan menyimpan kewarasan.
Struktur Loop ulangi
Jika Anda membaca artikel saya sebelumnya pada pernyataan bersyarat, maka struktur loop ulangi harus akrab. Seperti dengan banyak AppleScript konstruksi, loop ulangi membentuk blok kode dengan awal dan akhir.
[applescript]
Ulangi 3 kali
--perintah untuk mengulang
akhir ulangi
[/applescript]
Seperti yang Anda lihat, baris awal dimulai dengan "Ulangi" dan kemudian menguraikan persyaratan mengulang. Bagian tengah adalah di mana semua berbagai perintah harus diulang akan ditempatkan dan baris terakhir menginformasikan kompilator bahwa ini adalah dimana loop berakhir.



Struktur loop ulangi.
Contoh kode di atas adalah cukup sederhana berkat tingkat tinggi AppleScript's pembacaan. Sesuatu dalam blok ini berulang akan diulang tiga kali, maka script akan pindah (kecuali ada penghentian tindakan di ulang).
Satu hal bahwa Anda akan ingin diingat adalah bahwa kode Anda perlu ditulis sedemikian rupa bahwa mengulangi benar-benar melakukan sesuatu yang berguna. Hal ini sering terjadi bahwa bagian tertentu dari kode akan sama apakah Anda menjalankan sekali atau seribu kali. Terserah pada Anda untuk mencetak sedemikian rupa bahwa pengulangan menyebabkan kemajuan. Kita akan melihat bagaimana melakukan ini seperti kita belajar tentang berbagai jenis mengulangi yang tersedia.
Jenis ulangi Loops
Dalam artikel sebelumnya, kita berbicara tentang bagaimana Anda dapat memvariasikan Anda jika pernyataan jauh melalui berbagai kombinasi jika, jika lain dan lain. Ulangi loop dapat mencapai tingkat yang lebih tinggi dari variasi karena ada benar-benar banyak jenis ulangi loops dengan AppleScript. Mari kita pergi ke masing-masing dan bagaimana cara kerjanya.
Satu Infinite Loop
Jenis pertama dari ulangi adalah loop tak terbatas. Hal ini terjadi jika kita hanya menggunakan blok ulangi dengan tidak pengubah apapun.
[applescript]
mengatur x untuk "monoton"
Ulangi
Menampilkan dialog x
akhir ulangi
[/applescript]
Jika Anda menjalankan script ini, ia akan pergi selamanya, menampilkan dialog setiap kali itu mengeksekusi. Ada sangat sedikit praktis menggunakan kasus-kasus yang mana Anda ingin infinite ulangi begitu, sebagai aturan umum, pastikan bahwa Anda selalu menambahkan kode tambahan untuk pernyataan itu ulangi yang mengatur durasi atau jumlah pengulangan.
Ulangi beberapa kali
Jenis berikutnya mengulang ini ditampilkan dalam contoh kode pertama kami di atas. Ini adalah dimana kami secara khusus menyatakan berapa kali kita ingin sepotong kode untuk mengulangi. Berikut adalah contoh:
[applescript]
Ulangi 2 kali
Menampilkan dialog "Halo ada!"
akhir ulangi
[/applescript]
Dalam kode ini, kita memanggil sebuah kotak dialog yang berisi pesan sederhana. Blok ulangi diatur untuk melaksanakan ini dua kali, sehingga ketika pengguna mengklik salah satu tombol dalam dialog pertama, lain akan muncul di tempatnya.



Jendela yang sama akan muncul dua kali.
Seperti yang saya sebutkan di atas, mengulangi hal yang sama dua kali seperti ini tidak biasanya yang berguna. Sebaliknya apa yang perlu kita lakukan adalah mencari cara untuk bervariasi output. Mari kita lihat apakah kita bisa mendapatkan blok ulangi untuk melaksanakan dua kali, tetapi tampilan pesan yang berbeda setiap kali.
[applescript]
mengatur theMessages {"Halo ada!", "Mari kita belajar tentang AppleScript!"}
mengatur x 1
Ulangi 2 kali
Menampilkan dialog (item x dari theMessages)
set x ke (x + 1)
akhir ulangi
[/applescript]
Ini mungkin tampak sedikit membingungkan, tapi jangan khawatir, itu benar-benar sederhana. Kita mulai dengan menyatakan daftar. Daftar memungkinkan Anda untuk membungkus beberapa potongan data ke sebuah variabel. Di sini kami telah mengambil dua senar yang berbeda dan melemparkan mereka ke dalam "theMessages". Kita dapat mengakses setiap item daftar jumlah. Jadi "Halo ada!" adalah "1 theMessages" dan "Mari kita belajar tentang AppleScript!" adalah "item 2 theMessages".
Selanjutnya, kami mengambil keuntungan dari membangun sangat penting: counter. Ini adalah rahasia untuk membuat mengulang melakukan sesuatu yang berbeda setiap kali ia berjalan. Untuk contoh ini, kita tetapkan x untuk sama dengan 1, maka kita bertambah x pada akhir mengulang. Dengan cara ini, setiap kali pengulangan berjalan, dengan nilai x meningkat oleh satu.
Efek yang pada kode kami mendalam. Pertama kalinya jalur ulangi, x sama dengan 1, jadi item 1 daftar kami diakses dan pesan pertama kami ditampilkan dalam dialog. Maka nilai x dalam meningkat ke dua, yang menyebabkan pesan kedua yang akan ditampilkan untuk kedua kalinya melalui pengulangan.



Saat ini, dua pesan yang berbeda ditampilkan.
Tip: Perhatikan bahwa kita harus menggunakan angka (2) di ulang tertentu, mengeja untuk mengulangi sesuatu "dua kali" tidak akan bekerja.
Ulangi dengan nomor Range
Jika Anda mencari untuk siklus melalui sesuatu melalui incrementing sebuah variabel, ada cara yang lebih ringkas untuk pergi tentang itu daripada apa yang kita lihat dalam contoh sebelumnya. Menggunakan ulang dengan membangun, kami mendirikan sebuah counter yang dibangun langsung ke dalam lingkaran kami dan dapat diakses dari kode dalam. Mari kita lihat apa yang ini mirip dengan tweaker contoh kode sebelumnya:
[applescript]
mengatur theMessages {"Halo ada!", "Bagaimana kabarmu?", "Mari kita belajar tentang AppleScript!"}
Ulangi dengan n dari 1 sampai 3
Menampilkan dialog (item n dari theMessages)
akhir ulangi
[/applescript]
Seperti yang Anda lihat, kali ini kami memiliki tiga pesan untuk siklus melalui. Perhatikan bahwa kode kita benar-benar telah disederhanakan meskipun. Kami sudah dilucuti keluar penciptaan dan incrementing sebuah variabel dan sebaliknya mengatakan kepada blok ulangi untuk "Ulangi dengan n dari 1 sampai 3".
Apa yang dilakukan adalah menciptakan variabel n, kemudian mengulangi kenaikan itu dengan satu setiap kali blok. Angka-angka awal dan finishing ditentukan oleh bagian "dari 1 sampai 3". Jadi pertama kali ini dijalankan, n akan sama dengan 1, kemudian 2 kali, dan akhirnya 3 terakhir kali.
Akses cepat dan mudah untuk menghitung variabel membuat ulangi dengan struktur ulangi sangat berguna. Anda akan menemukan diri menggunakan ini sering.
Ulangi dengan daftar
Ada bentuk lain dari mengulang dengan blok yang parit angka dan sebaliknya secara khusus terstruktur untuk siklus melalui item dalam daftar. Ini adalah persis apa kita sudah berusaha untuk mencapai, jadi ini sempurna untuk contoh kami. Berikut adalah blok kami ulangi, disederhanakan lagi.
[applescript]
mengatur theMessages {"Halo ada!", "Bagaimana kabarmu?", "Mari kita belajar tentang AppleScript!"}
Ulangi dengan pesan di theMessages
Menampilkan dialog pesan
akhir ulangi
[/applescript]
Saat ini, kami memberitahukan AppleScript untuk mengulang blok kode dengan variabel pesan dalam daftar theMessages. Apa artinya adalah bahwa blok kode yang akan dijalankan sekali setiap item dalam daftar kami. Jadi dalam kasus ini, itu akan menjalankan tiga kali. Setiap kali berjalan, isi item daftar saat ini ditempatkan ke dalam variabel pesan kami, yang kita akses dalam perintah kita dialog tampilan kemudian.
Ulangi sementara
Loop ulangi berikutnya yang Anda dapat memanfaatkan dalam kode Anda ulangi sementara. Satu ini mudah dimengerti tapi masih super kuat. Pada dasarnya, ini memungkinkan Anda untuk mengulang blok kode tertentu sementara boolean diberikan benar. Berikut adalah contoh sederhana yang tidak berbuat banyak, tapi menggambarkan titik:
[applescript]
mengatur x True
y ditetapkan ke 0
Ulangi sementara x
jika kemudian y > 10
mengatur x ke false
lain
set y untuk y + 1
berakhir jika
akhir ulangi
[/applescript]
Script ini, blok kode akan mengulangi jauh selama x benar. Namun, dalam pengulangan, kami menetapkan x ke false jika y lebih besar dari 10, dan meningkatkan sebaliknya. Ini berarti bahwa kode hanya dapat mengulangi beberapa kali karena akhirnya y akan mendapatkan 10 dan kemudian mengulang akan berhenti.
Catatan bahwa aku bisa menggunakan struktur ini juga:
[applescript]
Ulangi sementara x benar
--kode untuk mengulangi
akhir ulangi
[/applescript]
Kode ini bekerja dengan baik, tetapi "benar" tidak diperlukan. Alasan untuk ini mendapat di inti hanya apa boolean dan apa yang dilakukannya. X variabel dalam contoh kita sama dengan benar, kedua satu dan sama.
Sekarang, jika Anda ingin mengubah ini pada kepalanya, Anda dapat mengulangi sesuatu sampai boolean Anda menjadi benar. Ini bekerja seperti:
[applescript]
Ulangi sementara x palsu
--kode untuk mengulangi
akhir ulangi
[/applescript]
Ini semua tampaknya sedikit abstrak, jadi mari kita melakukan sesuatu yang menarik dengan mengulang sementara loop. Kita akan membangun dasar permainan menebak nomor. Pertama, kita akan mengatur variabel jawaban untuk nomor acak dan kami menebak variabel ke 0. Selanjutnya, kami akan membuat mengulang sementara loop yang terus terjadi selama pengguna menebak tidak sama dengan jawaban yang dipilih secara acak.
Dalam pengulangan, kami akan menampilkan dialog dan mengatur nomor kembali ke variabel menebak. Jendela entri guess ini akan bertahan sampai kira benar.
[applescript]
mengatur jawaban acak nomor dari 1 sampai 5
Tebak ditetapkan ke 0
Ulangi sementara kira tidak sama untuk menjawab
mengatur kira teks kembali (tampilan dialog "kurasa lagi! Memilih nomor dari 1 sampai 5" default jawaban"1") sebagai nomor
akhir ulangi
Menampilkan dialog "Itu benar!" & jawaban & "adalah jawabannya!"
[/applescript]



Jendela ini memungkinkan pengguna untuk menebak nomor dan akan ulangi sampai kira benar.
Ulangi sampai
Kode "Ulangi sementara kira tidak sama untuk menjawab" ini tidak sangat mudah untuk membaca. Negatif (tidak sama dengan) membuatnya membingungkan. Kita dapat menyederhanakan ini sedikit jika kita selokan ulangi sementara loop dan bukannya melihat ke ulangi sampai lingkaran. Berikut adalah nomor permainan menebak yang ditulis ulang:
[applescript]
mengatur jawaban acak nomor dari 1 sampai 5
Tebak ditetapkan ke 0
Ulangi sampai (menebak = jawaban)
mengatur kira teks kembali (tampilan dialog "kurasa lagi! Memilih nomor dari 1 sampai 5" default jawaban"1") sebagai nomor
akhir ulangi
Menampilkan dialog "Itu benar!" & jawaban & "adalah jawabannya!"
[/applescript]
Seperti yang Anda lihat, ulangi ini jauh lebih ringkas dan mudah dibaca. Perlu diingat bahwa ini tidak selalu menjadi kasus, kadang-kadang sementara ulangi akan menjadi salah satu yang menyelamatkan Anda kode.
Sekarang semua bersama-sama
Wah! Ada yang mengerikan banyak jenis loops ulangi tidak ada? Jika Anda merasa kewalahan, jangan. Mereka semua cukup sederhana dan Anda akan terkejut seberapa sering kata-kata yang tepat adalah hal pertama yang muncul di kepala Anda. Hanya untuk tetap pada jalur, berikut adalah daftar singkat dari beberapa contoh ulangi yang berbeda:
- Ulangi 5 kali
- Ulangi n kali
- Ulangi dengan n dari 1 sampai 5
- Ulangi dengan listItem di theList
- Ulangi sementara x
- Ulangi sementara y benar
- Ulangi sementara x palsu
- Ulangi sampai y
- Ulangi sampai (x > y)
Ketika menulis sebuah loop ulangi, selalu dijalankan melalui beberapa struktur lain di kepala Anda untuk melihat jika Anda dapat membuatnya ringkas dan lebih ringkas. Seperti yang kita lihat di atas, Anda dapat benar-benar meningkatkan kode Anda dengan tetap terbuka untuk menggunakan konstruksi berbeda.
Tetap dalam lingkaran
Anda sekarang harus pakar AppleScript ulangi loop. Dengan memanfaatkan ini dalam hubungannya dengan jika pernyataan yang kita pelajari sebelumnya, Anda akan mampu melepas beberapa skrip yang luar biasa kompleks dan sangat berguna.
Pada kenyataannya, di AppleScript berikutnya kami artikel akan mengambil istirahat dari teori dan menaruh beberapa pengetahuan ini untuk menggunakan dengan script praktis yang dapat diterapkan pada sistem Anda segera. Periksa kembali segera!