Montag, 2. Mai 2011

[Tutorial] Die If-Anweisung

In meinem ersten Tutorial möchte ich gerne die "If" Anweisung kurz erklären.
In Tasker ist diese im Bereich "Tasker" zu finden.

Die "If"-Anweisung findet man in jeder höheren Programmiersprache. Mit ihr ist es möglich Befehle nur dann ausführen zu lassen, wenn eine bestimmte Voraussetzung eintrifft. Zum Beispiel:
If draußen = dunkel
Licht = an



Nun wird das Licht also auf angesetzt wenn es draußen dunkel ist. Um nun bei Tasker ein solche If-Anweisung zu erstellen, geht man im Task-Fenster auf "+" um eine neue Anweisung hinzuzufügen. In dem Bereich "Tasker" findet sich dann die Aktion "If". darauf geklickt öffnet sich ein neues Fenster mit 3 Elementen. in Das erste Eingabefenster kommt die Variable, deren Zustand abgefragt werden soll, das kann eine eigene Variable sein, oder aber ein in Tasker schon integrierte. Eine Übersicht der schon integrierten Variablen findet sich hier: http://tasker.dinglisch.net/userguide_summary.html#variables.html

In das zweite Element kommt der Vergleichsoperator. Mit einem Klick darauf öffnet sich ein Fenster, in welchem man den Operator auswählen kann. Die Bezeichnungen sind eigentlich selbst erklärend.
Im letzten Feld kommt der Wert mit welchem der Variableninhalt verglichen werden soll. Dies kann direkt ein Wert, aber auch der Inhalt einer Variablen sein. Mit "Fertig wird die Anweisung erstellt. Nun werden alle kommenden Anweisungen nur ausgeführt, wenn die eingegebene Bedingung zutrifft. Da man aber unter Umständen auch Befehle unabhängig von der If-Anweisung ausführen möchte gibt es noch die Anweisung "End If".

"End If" gehörtalso zur "If"-Schleife, welche zum Beispiel folgendermaßen aussehen kann:
If Bedingung
Befehl1
Befehl2
EndIf
Befehl3

Trifft eine Bedingung nicht zu werden die Befehle zwischen "If" und "End If" übersprungen, ansonsten werden sie mit ausgeführt. "Befehl 3" wird in jedem Falle ausgeführt da dieser nicht bestandteil der If Schleife ist.
"End If" kennzeichnet also das Ende der If Schleife.

Wenn man nun einen Task komplett beenden will kann man die Anweisung "Stop" nutzen, denn "Stop" beendet die Ausführung des kompletten Tasks, also aller weiteren in dem Task angegebenen Befehle.
If Bedingung
Stop
End If
Befehl1

Nun wird der Task abgebrochen, wenn die Bedingung zutrifft, d.h. auch "Befehl1" wird nicht ausgeführt.

1 Kommentar:

  1. Hat etwas gedauert bis ich drauf kam, aber damit lässt sich ein variabler Timer umsetzen.

    * Variable bestimmen und mit einem mathematischen default-Wert füllen (z.B. %MYTIMER || 20)
    * Eine Szene anzeigen lassen
    * In der Szene einen Number Picker definieren der die Variable in der Grundeinstellung hat, und zusätzlich diese Variable in "AUSGEWÄHLTER WERT" setzt
    * Im Task kommt dann an geeigneter Stelle die If-Schleife:
    IF VARIABLE > 0 (Bezeichnung setzen, z.B. auf TIMER)
    Warte 1 Minute
    Variable Subtrahieren ==> VARIABLE Wert 1
    Goto Aktion TIMER
    END If


    Damit will ich z.B. einstellen lassen, dass alle X Minuten die Geokoordinaten auf meine Webseite kopiert werden. Da es aber einen Unterschied macht ob man zu Fuß oder mobil unterwegs ist, und das auf den Akku geht, find ich die Option sinnvoll.

    AntwortenLöschen