Arduino'da for operatörünü kullanma. Arduino'da FOR ve WHILE döngüleri

Arduino'da for operatörünü kullanma. Arduino'da FOR ve WHILE döngüleri

İyi günler. İşte sevgili okuyucular, Arduino programlamayla ilgili üçüncü dersimiz.

  • devre kartının tasarımıyla tanıştım;
  • Donanımsal olarak birleştirdik ve ilk devremizi flashladık.

Bugün Arduino Uno kartının iki dijital çıkışını kullanacak bir devre kuracağız. Buna göre, farklı renklerde 2 LED'e (netlik için), 2 rezistöre, atlama tellerine ve aynı devre kartına (veya daha önce kurulum için kullandığınız her şeye) ihtiyacımız olacak. Şemalardan birinde kırmızı LED'i, ikincisinde ise beyaz LED'i açacağız.

Montaja başlayalım" ev yapımı ürünler"Aşağıdaki şemaya göre. Projelerinizde Fritzing programını kullanmanızı tavsiye ederim. Onun yardımıyla, gerçek kurulumdan önce devrelerin düzenini planlayabilirsiniz.

Kurulum sırasında kafanızın karışmaması için farklı renkteki jumper'ları almaya çalışın. Belki bu örnekte tavsiye saçma gelebilir, ancak tahtada bir düzine kadar farklı öğe olduğunda ve bunların her birine en az 2 jumper bağlandığında tavsiyemi hatırlayacaksınız. 🙂

Arduino IDE yazılım ortamını açın.

Programı yazıyoruz.

Yükleyip sonuca bakıyoruz. Kırmızı ve beyaz LED'ler dönüşümlü olarak yanıp söner.

Eğitimsel görev örnekleri her zaman “sınırlı hayal gücü” için bir hazine hazinesi veya teknik bir görevin nasıl yazılmaması gerektiğine dair bir örnek olmuştur...

Bir elektrik motoru için kontrol sistemlerini yazdığımızı hayal edelim. Altprogramın sonsuza kadar harmanlanabileceğini unutalım. Motorumuz açılıp kapandı. Açma/kapama döngüsü “efsanevi düğmeye” basılarak başlatıldı.

Bir açma/kapama döngüsünden geçmesine ihtiyacımız var. 10 kez. Sanırım çok az insan kükreyen bir makinenin yanında durup bir düğmeye basmak ister... Bu nedenle programı modernleştiriyoruz.

4 satırlık bir bloğu (beyaz LED açık ve kapalı) 9 kez kopyalıyoruz - sonunda 10 açma/kapama döngüsü elde ediyoruz. Bir "ikinci motor" ekleyelim - kırmızı LED yalnızca bir kez açılıp kapanacaktır.

Programı yükleyin ve sonuca bakın.

Her şey yolunda gitti ama sorun şu: Açma/kapama döngüsüne olan ihtiyaç 100'e ya da 1000'e çıkarsa her şeyi yeniden kopyalayacak mıyız? Bir şekilde istemiyorum... O yüzden dur! Sen ve ben çalıştık. Bilginizi uygulamaya koymanın zamanı geldi. Görevimiz için belirli sayıda tekrara sahip bir döngü mükemmeldir - döngü için. Programı global değişkenlerle yüklememek için döngü başlığında yerel bir değişken olan “döngü yürütme sayacı”nı bildireceğiz.

Yeni başlayanlar için Arduino programlama dili aşağıdaki tabloda ayrıntılı olarak sunulmaktadır. Arduino mikrodenetleyicisi C/C++ tabanlı özel bir programlama dilinde programlanmıştır. Arduino programlama dili C++'ın bir çeşididir, yani Arduino için ayrı bir programlama dili yoktur. PDF kitabını sayfa sonunda indirebilirsiniz.

Arduino IDE'de, tüm yazılı eskizler minimum değişiklikle C/C++ dilinde bir programda derlenir. Arduino IDE derleyicisi, bu platform için program yazmayı büyük ölçüde basitleştirir ve Arduino'da cihazlar oluşturmak, C/C++ dili hakkında kapsamlı bilgiye sahip olmayan kişiler için çok daha erişilebilir hale gelir. Aşağıda Arduino dilinin ana fonksiyonlarını örneklerle anlatan kısa bir referans vereceğiz.

Arduino diline ayrıntılı referans

Dil dört bölüme ayrılabilir: ifadeler, veriler, işlevler ve kütüphaneler.

Arduino dili Örnek Tanım

Operatörler

kurmak() geçersiz kurulum ()
{
pinMode(3, INPUT);
}
Fonksiyon değişkenleri başlatmak, kart üzerindeki pinlerin çalışma modlarını belirlemek vb. için kullanılır. İşlev, mikro denetleyiciye her güç beslemesinden sonra yalnızca bir kez çalışır.
döngü() geçersiz döngü ()
{
digitalWrite(3, YÜKSEK);
gecikme(1000);
digitalWrite(3, DÜŞÜK);
gecikme(1000);
}
Döngü işlevi döngü yaparak programın hesaplamalar yapmasına ve tepki vermesine olanak tanır. setup() ve loop() fonksiyonları, bu ifadeler programda kullanılmasa bile her çizimde mevcut olmalıdır.

Kontrol ifadeleri

eğer
eğer(x>
eğer(x)< 100) digitalWrite (3, LOW );
if ifadesi karşılaştırma işleçleriyle (==, !=,<, >) ve koşulun doğru olup olmadığını kontrol eder. Örneğin x değişkeninin değeri 100'den büyükse çıkış 13'teki LED yanar, küçükse LED söner.
eğer..else
if (x > 100) digitalWrite (3, YÜKSEK);
aksi takdirde digitalWrite(3, DÜŞÜK);
else ifadesi, birbirini dışlayan birden fazla kontrol gerçekleştirmek için if'te belirtilenden farklı bir kontrol yapmanıza olanak tanır. Eğer kontrollerden hiçbiri DOĞRU sonuç vermezse, else'deki ifade bloğu yürütülür.
anahtar...kutu
anahtar(x)
{


durum 3: mola;

}
If gibi, switch ifadesi de farklı koşullar altında gerçekleştirilecek eylemleri belirtmenize izin vererek bir programı kontrol eder. Break, bir ifadeden çıkmak için kullanılan bir komuttur; hiçbir alternatif seçilmediğinde varsayılan olarak yürütülür.
için geçersiz kurulum ()
{
pinMode(3, ÇIKIŞ);
}
geçersiz döngü ()
{
for (int i=0; i<= 255; i++){
analogWrite(3, i);
gecikme(10);
}
}
For yapısı süslü parantez içindeki ifadeleri tekrarlamak için kullanılır. Örneğin, bir LED'in düzgün karartılması. For döngüsü başlığı üç bölümden oluşur: for (başlatma; koşul; artış) - başlatma bir kez gerçekleştirilir, ardından koşul kontrol edilir, koşul doğruysa artırma gerçekleştirilir. Döngü, koşul yanlış olana kadar tekrarlanır.
sırasında geçersiz döngü ()
{
iken(x< 10)
{
x = x + 1;
Seri.println(x);
gecikme(200);
}
}
While ifadesi parantez içindeki koşul doğru olduğu sürece çalışacak bir döngü olarak kullanılır. Örnekte, while döngüsü ifadesi, x 10'dan küçük olana kadar parantez içindeki kodu sonsuza kadar tekrarlayacaktır.
yap... bu arada geçersiz döngü ()
{
Yapmak
{
x = x + 1;
gecikme(100);
Seri.println(x);
}
iken(x< 10);
gecikme(900);
}
do...while döngüsü ifadesi, while döngüsüyle aynı şekilde çalışır. Ancak parantez içindeki ifade doğruysa döngüden çıkmak yerine döngü devam eder. Yukarıdaki örnekte, eğer x 10'dan büyükse toplama işlemi 1000 ms'lik bir duraklamayla devam edecektir.
kırmak
devam etmek
anahtar(x)
{
durum 1: digitalWrite (3, YÜKSEK);
durum 2: digitalWrite (3, DÜŞÜK);
durum 3: mola;
durum 4: devam et;
varsayılan: digitalWrite (4, YÜKSEK);
}
Break, döngünün tamamlanmasını beklemeden switch, do, for ve while döngülerinden çıkmaya zorlamak için kullanılır.
Continue ifadesi, geçerli döngü adımındaki kalan ifadeleri atlar.

Sözdizimi

;
(noktalı virgül)

digitalWrite(3, YÜKSEK);
Bir ifadenin sonunu belirtmek için noktalı virgül kullanılır. Satır sonundaki noktalı virgülün unutulması derleme hatasına neden olur.
{}
(diş telleri)
geçersiz kurulum ()
{
pinMode(3, INPUT);
}
Açılış parantezi “(” ve ardından kapanış parantezi “)” gelmelidir. Eşleşmeyen parantezler, bir çizimi derlerken gizli ve anlaşılmaz hatalara yol açabilir.
//
(Yorum)
x = 5; // Yorum

Her programlama dilinde, aynı kodun tekrar tekrar çalıştırılmasına (bir döngü), uygun kod parçasının seçimine (koşullar) ve mevcut kod parçasından çıkmak için talimatlara izin veren bir dizi kontrol talimatı bulunur.

Arduino IDE gerekli kontrollerin çoğunu C/C++'dan ödünç alır. Sözdizimleri C ile aynıdır. Aşağıda sözdizimlerini kısaca açıklayacağız.

if ifadesi

If ifadesi, belirli bir koşulu kontrol etmenin sonucuna bağlı olarak programın belirli bir parçasını çalıştırmanıza olanak tanır. Koşul karşılanırsa program kodu yürütülür, koşul karşılanmazsa program kodu atlanır. if komutunun sözdizimi aşağıdaki gibidir:

If(koşul) (talimat1; talimat2; )

Koşul, bir işlev tarafından döndürülen bir değişkenin veya değerin herhangi bir karşılaştırması olabilir. Bir if koşulunun ana kriteri, cevabın her zaman doğru ya da yanlış olması gerektiğidir. Bir if ifadesi için koşullara örnekler:

If(a!=2) ( ) if(x)<10) { } if(znak==’B’) { }

Koşul içerisine yazılan parantezlerin içerisinde kodu çalıştırabilirsiniz.

Programlamayı öğrenmeye başlayan kişiler genellikle belirli bir değişkenin değerini tek bir "=" işareti kullanarak eşitleme hatasına düşerler. Böyle bir gösterim, bir değişkene bir değerin atandığını açıkça gösterir ve bu nedenle koşul her zaman "doğru" olacaktır, yani karşılanacaktır. Bir değişkenin belirli bir değere eşit olup olmadığının test edilmesi her zaman çift eşittir işaretiyle (==) gösterilir.

İşlev durumunu bir koşul olarak kullanabilirsiniz, örneğin:

If(init()) ( Serial.print("ok"); )

Yukarıdaki örnek şu şekilde yürütülecektir: İlk adımda init() işlevi çağrılır. Bu işlev, "doğru" veya "yanlış" olarak yorumlanacak bir değer döndürür. Karşılaştırma sonucuna göre “tamam” yazısı gelecek veya hiçbir şey gönderilmeyecektir.

If…else ifadesi

Genişletilmiş if ifadesi if….else ifadesidir. Bir koşul doğru (doğru) olduğunda bir kod parçasının yürütülmesini ve koşul karşılanmadığında (yanlış) ikinci bir kod parçasının yürütülmesini sağlar. f if….else ifadesinin sözdizimi aşağıdaki gibidir:

If (koşul) ( // komut A ) else ( // komut B )

"A" komutları yalnızca koşul karşılandığında yürütülür, "B" komutu koşul karşılanmadığında yürütülür. “A” ve “B” komutunun aynı anda yürütülmesi mümkün değildir. Aşağıdaki örnek if...else sözdiziminin nasıl kullanılacağını gösterir:

If (init()) ( Serial.print("tamam"); ​​) else ( Serial.print("error"); )

Bu sayede bir fonksiyonun doğru şekilde yürütülüp yürütülmediğini kontrol edebilir ve kullanıcıyı bu konuda bilgilendirebilirsiniz.

Yaygın bir uygulama, durumu olumsuzlamaktır. Bunun nedeni, doğru şekilde yürütülen bir işlevin 0 değerini döndürmesi ve herhangi bir nedenle yanlış yürütülen bir işlevin sıfırdan farklı bir değer döndürmesidir.

Bu “hayatın karmaşıklığının” açıklaması basittir. İşlev doğru şekilde yürütülürse, ihtiyacımız olan tek bilgi budur. Bir hata durumunda bazen neyin yanlış gittiğini ve işlevin neden doğru şekilde yerine getirilmediğini anlamak faydalı olabilir. Ve burada sıfır dışındaki sayılar kurtarmaya geliyor, yani. dijital kodları kullanarak hatanın türünü belirleyebiliriz. Örneğin, 1 - bazı değerlerin okunmasında sorun var, 2 - bellekte veya diskte yer yok vb.

Son değiştirilen örnek, doğru çalıştırıldığında sıfır döndüren bir fonksiyonun nasıl çağrılacağını gösterir:

If (!init()) ( Serial.print("tamam"); ​​) else ( Serial.print("error"); )

Switch case bildirimi

If ifadesi yalnızca bir koşulu test etmenize olanak tanır. Bazen döndürülen veya okunan değere bağlı olarak işlemlerden birinin gerçekleştirilmesi gerekebilir. Anahtar çoktan seçmeli operatörü bunun için idealdir. Switch komutunun sözdizimi aşağıda gösterilmiştir:

Anahtar (var) ( durum 1: //var=1 sonu için talimat; durum 2: //var=2 için talimat break; varsayılan: //varsayılan talimat (eğer var 1 ve 2'den farklıysa) )

Var değişkeninin değerine bağlı olarak belirli bloklardaki talimatlar yürütülür. Durum etiketi, belirtilen değer için bir bloğun başlangıcını gösterir. Örneğin, durum 1: bu bloğun var'ın bire eşit değeri için yürütüleceği anlamına gelir.

Her blok bir break komutuyla sonlandırılmalıdır. Switch ifadesinin daha fazla yürütülmesini kesintiye uğratır. Break komutu atlanırsa talimatlar, break komutundan önce sonraki bloklarda yürütülecektir. Varsayılan etiket, tıpkı if ifadesinde olduğu gibi isteğe bağlıdır. Varsayılan blokta bulunan talimatlar yalnızca var değişkeninin değeri herhangi bir kalıpla eşleşmediğinde yürütülür.

Çoğu zaman aynı talimatların birden fazla değerden biri için yürütülmesi gerektiği görülür. Bu şu şekilde başarılabilir:

Anahtar (x) ( durum 1: //x=1 kesme talimatı; durum 2: durum 3: durum 5: //x=2 veya 3 veya 4 kesme talimatı; durum 4: //x=4 kesme talimatı ; durum 6: // x=6 için talimat break default: // varsayılan talimat (eğer x 1,2,3,4,5,6'dan farklıysa)

X değişkeninin değerine bağlı olarak karşılık gelen talimat bloğu yürütülecektir. Tekrarlanan durum 2: durum 3: durum 5: derleyiciye, x değişkeninin 2 veya 3 veya 5 değerine sahip olması durumunda aynı kod parçasının yürütüleceğini bildirir.

beyan için

For ifadesi aynı kodun tekrar tekrar çalıştırılması için kullanılır. Çoğu zaman, yalnızca bazı değişkenlerin değerini değiştirerek aynı talimatları yürütmek gerekir. Bunun için for döngüsü idealdir. Komutun sözdizimi aşağıdaki gibidir:

Dahili ben; for(i=0;i<10;i++) { // инструкции для выполнения в цикле }

For ifadesinde verilen ilk parametre, değişkenin başlangıç ​​değeridir. Başka bir öğe, döngünün yürütülmesine devam etme koşulunu kontrol etmektir. Döngü koşul sağlandığı sürece çalışır. Son unsur değişkenin değerindeki değişikliktir. Çoğu zaman değerini artırır veya azaltırız (gerektiğinde). Bu örnekte döngünün içerdiği talimatlar i=0...9'da yürütülecektir.

Genellikle bir döngüde kullanılan bir değişken burada bildirilir:

For(int i=0;i<10;i++) { // инструкции для выполнения в цикле }

Döngünün sonraki adımlarını saymak için kullanılan bir değişken, uygun parametrelerle bir işlevi çağırmak için döngü içinde kullanılabilir.

For(int i=10;i>0;i—) ( Serial.print(i); // 10,9,8,7,6,5,4,3,2,1 sayıları gönderilecektir)

while ifadesi

For döngüsü, sayım yapmak istediğimiz yerde idealdir. Tahmin edilemeyen bir olayın sonucu olarak belirli eylemleri gerçekleştirmemiz gereken bir durumda (örneğin, bir düğmeye basılmasını bekliyoruz), o zaman deyim bloğunu çalıştırana kadar deyim bloğunu çalıştıran while deyimini kullanabiliriz. koşul karşılanır. while ifadesinin sözdizimi aşağıdaki gibidir:

While(koşul) ( // yürütülecek komut bloğu)

Durum kontrolünün döngünün başında yapılması önemlidir. While döngüsünün içindeki talimatlar hiçbir zaman yürütülmeyebilir. Sonsuz döngü oluşturmak da mümkündür. İki örneğe bakalım:

Dahili x=2; while(x>5) ( Seri.print(x); ) —————————————- int y=5; while(y>0) ( Seri.print(y); )

while'ın içinde yer alan ilk ifade bloğu hiçbir zaman çalıştırılmayacaktır. X değişkeninin değeri ikidir ve 5'ten büyük olmayacaktır. İkinci örnekte sonsuz bir döngüyle uğraşıyoruz. “y” değişkeni 5, yani sıfırdan büyük bir değere sahiptir. Döngü içindeki "y" değişkeninde herhangi bir değişiklik olmadığından döngü hiçbir zaman tamamlanmayacaktır.

Döngünün sonlanmasına neden olan bir parametreyi değiştirmeyi unuttuğumuzda bu yaygın bir hatadır. Aşağıda while döngüsünü kullanmanın iki doğru örneği verilmiştir:

Dahilix=0; iken(x<10) { //блок инструкций x++; } —————————————- while(true) { if(условие) break; // блок инструкций }

İlk örnekte koşulda kontrol edilen değişkenin değerini değiştirmeye özen gösterdik. Sonuç olarak döngü sonunda sona erecektir. İkinci örnekte bilinçli olarak sonsuz bir döngü oluşturuldu. Bu döngü, Arduino IDE'deki loop() fonksiyonuna eşdeğerdir. Ek olarak döngünün içine bir durum kontrolü eklenmiştir ve bunun ardından döngü break komutuyla sonlandırılır.

yap…operatör sırasında

While döngüsünün bir varyasyonu do...while döngüsüdür. Söz dizimine ek olarak koşulun kontrol edildiği yere göre de farklılık gösterir. Do...while durumunda, talimat bloğu yürütüldükten sonra durum kontrol edilir. Bu, döngünün gövdesindeki talimat bloğunun en az bir kez yürütüleceği anlamına gelir. Aşağıda do...while komutunun sözdizimi verilmiştir:

( // talimat bloğunu) while(koşul) yapın

while operatörü hakkında yazılan her şey aynı zamanda do...while için de geçerlidir. Aşağıda do...while döngüsünün kullanımına bir örnek verilmiştir:

Dahilix=10; do ( // talimat bloğu x—; ) while(x>0); —————————————- do ( // talimat bloğu if (condition) break; ) while(true);

mola ifadesi

Break ifadesi döngüden çıkmanıza (do...while, for, while) ve switch seçeneğinden çıkmanıza olanak tanır. Aşağıdaki örnekte break komutunu çalıştırmayı düşünün:

için(i=0;i<10;i++) { if(i==5) break; Serial.print(i); }

Döngünün 0'dan 9'a kadar olan sayılar için yürütülmesi gerekir, ancak 5 sayısı için break ifadesini tetikleyen bir koşul karşılanır. Bu döngüden çıkılmasını sağlayacaktır. Sonuç olarak seri porta (Serial.print) sadece 0,1,2,3,4 sayıları gönderilecektir.

Operatöre devam et

Continue operatörü, döngü talimatlarının (do...while, for, while) yürütülmesinin geçerli değer için durmasına ve döngünün bir sonraki adımına geçmesine neden olur. Aşağıdaki örnek, devam ifadesinin nasıl çalıştığını gösterir:

için(i=0;i<10;i++) { if(i==5) continue; Serial.print(i); }

Fark edilmesi zor olmadığı için döngü 0'dan 9'a kadar olan değerler için yürütülecektir. 5 değeri için devam komutu yürütülecek, bunun sonucunda bu komuttan sonraki talimatlar yürütülmeyecektir. Sonuç olarak seri porta (Serial.print) 0,1,2,3,4,6,7,8,9 sayıları gönderilecektir.

dönüş bildirimi

Return ifadesi, çağrılan işlevin yürütülmesini sonlandırır ve belirli türde bir değer döndürür. Komut parametresi olarak bir sayıyı, bir sembolü veya belirli bir türdeki değişkeni belirtebilirsiniz. Dönen değerin bildirilen işlevin türüyle eşleşmesi önemlidir. Aşağıdaki örnek, return ifadesinin nasıl kullanılacağını gösterir:

Int checkSensor())( if (analogRead(0) > 400) ( // analog giriş okunduğunda 1 döndürülür; // 400'den büyük değerler için 1 döndürülür, else( return 0; // diğerleri için 0 döndürülür geri döndü))

Gördüğünüz gibi, bir fonksiyonda birden fazla return ifadesi kullanabilirsiniz, ancak bunlardan yalnızca biri her zaman çalışacaktır. Dönüş operatörünün parametresiz kullanılması kabul edilebilir. Bu, herhangi bir değer döndürmeyen bir işlevi zamanından önce sonlandırmanıza olanak tanır.

Void işlev_adı() ( talimat1; if(x==0) return; talimat2; talimat3; )

Yukarıdaki örnekte, fonksiyon her çağrıldığında talimat1 yürütülecektir. Talimat2 ve talimat3'ün yürütülmesi if komutunun sonucuna bağlıdır. Koşul doğruysa (true), dönüş komutu yürütülecek ve işlevden çıkılacaktır.

Koşulun karşılanmaması durumunda, dönüş komutu da yürütülmez, ancak talimat2 ve talimat3 talimatları yürütülür ve bundan sonra fonksiyon işini tamamlar.

ifadeye git

İdeolojik nedenlerden dolayı bu açıklamayı atlamak gerekiyor... Goto ifadesi normal programlamada kullanılmaması gereken bir komuttur. Kodun karmaşıklığına neden olur ve kötü bir programlama alışkanlığıdır. Programlarınızda bu komutu kullanmamanızı önemle tavsiye ederiz. Goto, arduino.cc web sitesindeki resmi belgelerde yer aldığından, burada onun kısa bir açıklamasını bulacaksınız. git komut sözdizimi:

…. işarete git; // 'metka' etiketli satıra gidin ..... .... …. metka: // programın çalışmaya devam edeceği etiket...

Komut, belirlenen işarete, yani programdaki bir yere gitmenizi sağlar.

Tasarım için Kıvrımlı parantez içine alınmış bir ifade bloğunu tekrarlamak için kullanılır. Artış sayacı genellikle bir döngüyü artırmak ve sonlandırmak için kullanılır. Operatör için Tekrarlanan herhangi bir aktivite için uygundur ve sıklıkla veri/çıktı toplama dizileriyle birlikte kullanılır.

Döngü başlığı içinüç bölümden oluşur:

için (başlatma ; durum ; artış) (bir döngüde yürütülen operatörler)

Başlatma ilk önce ve yalnızca bir kez gerçekleştirilir. Döngüde her seferinde bir koşul kontrol edilir, eğer doğruysa, bir ifade bloğu ve bir artış yürütülür, ardından koşul tekrar kontrol edilir. Koşulun boolean değeri false olduğunda döngü sona erer.

Örnek
// PWM pinini kullanarak LED'i karartmak int PWMpin = 10; // 10 pinli 470 ohm'luk dirençle seri bağlı LED void setup() ( // kurulum gerekmez) void loop() ( for (int i=0; i<= 255; i++){ analogWrite(PWMpin, i); delay(10); } }

Döngü için C döngülerden çok daha esnektir için BASIC gibi diğer programlama dillerinde. Noktalı virgül gerekli olmasına rağmen, üç başlık öğesinden herhangi biri veya tümü çıkarılabilir. Ayrıca döngü başlatma, koşullu ve artış ifadeleri herhangi bir geçerli C bağımsız değişken ifadesi olabilir ve kayan değişkenler dahil herhangi bir C veri tipini kullanabilir. Bunlar döngü için olağandışıdır için operatör türleri, standart dışı bazı sorunlara yazılım çözümü sağlamayı mümkün kılar.

Örneğin, bir döngü sayacı operatöründe çarpma işleminin kullanılması, logaritmik bir ilerleme oluşturmanıza olanak tanır:

For(int x = 2; x< 100; x = x * 1.5){ println(x); }

Oluşturulan: 2,3,4,6,9,13,19,28,42,63,94

Başka bir örnek, bir döngü kullanarak bir LED'in sinyal seviyesini yumuşak bir şekilde azaltmak veya artırmak için:

Void loop() ( int x = 1; for (int i = 0; i > -1; i = i + x)( analogWrite(PWMpin, i); if (i == 255) x = -1; // maksimum gecikmede anahtarlama kontrolü(10))

Tanım

For ifadesi küme parantezleri içine alınmış bir ifade bloğunu tekrarlamak için kullanılır. Döngüyü artırmak ve sonlandırmak için genellikle bir artış sayacı kullanılır. for deyimi herhangi bir tekrarlanan işlem için kullanışlıdır ve genellikle veri/pin koleksiyonları üzerinde işlem yapmak için dizilerle birlikte kullanılır.

Sözdizimi

For (başlatma; koşul; artış) ( // ifade(ler); )

Parametreler

başlatma: ilk önce ve tam olarak bir kez gerçekleşir.
koşul: döngü boyunca her seferinde koşul test edilir; eğer doğruysa, ifade bloğu ve artış yürütülür, ardından durum tekrar test edilir. ne zaman durum false olursa döngü sona erer.
artış: devam doğru olduğunda döngü boyunca her seferinde yürütülür.

Örnek Kod

// PWM pinini kullanarak bir LED'i kısın int PWMpin = 10; // Pin 10'da 470 ohm'luk dirençle seri bağlı LED void setup() ( // kurulum gerekmez) void loop() ( for (int i = 0; i<= 255; i++) { analogWrite(PWMpin, i); delay(10); } }

Notlar ve Uyarılar

C "for" döngüsü, BASIC dahil diğer bazı bilgisayar dillerinde bulunan "for" döngülerinden çok daha esnektir. Noktalı virgül gerekli olmasına rağmen, üç başlık öğesinin herhangi biri veya tümü çıkarılabilir. Ayrıca başlatma, koşul ve artış ifadeleri ilgisiz değişkenlere sahip herhangi bir geçerli C ifadesi olabilir ve kayan noktalar dahil herhangi bir C++ veri tipini kullanabilir. Bu tür alışılmadık for ifadeleri, bazı nadir programlama sorunlarına çözüm sağlayabilir.