Hallo Klaus…,
ich fange dann mal mit der Beantwortung der 3. Frage an.
Die {} begrenzen Funktionsblöcke die z.B. eine Schleife (while, for, main) umfassen, bzw. wie auch in deinem Falle eine Bedingung (if-Abfrage).
z.B.
int plus_eins(int var_a)
{
var_a++;
return var_a;
}
hier begrenzen die Klammen den Funktionsblock der Unterfunktion „plus_eins“
der aufruf erfolgt mit: plus_eins(Kontostand);
damit würde die Variable „Kontostand“ um 1 erhöht.
bei if-Abfragen sieht das dann so aus
…
if(Kontostand < 0)
{
printf(„Hilfe ich bin pleite!“);
}
…
hierzu ein paar wichtige Dinge.
Du siehst KEIN Semikolon hinter der IF-Abfrage. Das ist richtig und wichtig.Alles was zwischen den {} steht gehört zu if-Funktion und wird abgearbeitet wenn Kontostand kleiner 0 ist.
Die Klammern sind erforderlich wenn mehr als zwei Zeilen abgearbeitet werden müssen. Bei einer Zeile kann man die Klammern weglassen, das wist du vielleicht mal bei Beispielscripen sehen. Sieht dann so aus.
…
if(Kontostand < 0)
printf(„Hilfe ich bin pleite!“);
…
Einen Untzerschied macht also:
…
if(Kontostand < 0)
{
printf(„Hilfe ich bin pleite!“);
Kredit_aufnehmen();
}
…
und
…
if(Kontostand < 0)
printf(„Hilfe ich bin pleite!“);
Kredit_aufnehmen();
…
ohne Klammen wird die Funktion „Kredit_aufnehmen“ IMMER aufgerufen, egal was die If-Bedingung bringt. Hierbei sind die Klammer also wichtig.
zur 2. Frage:
Besser kann man meistens alles irgendwie noch machen - aber richtiger auf jeden Fall.
zur 1.Frage:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Markise_Einfahren_BeiRegen_Wind_Daemmerung.ips.php
Trigger : Regen_Wind_Dämmerung
Interval :
*/
//Hole Daemmerungsschalter_Kanal_1 Wert
$DS_Ch1=GetValueBoolean("Daemmerungsschalter_Kanal_1");
//Hole KS_300_Windgeschwindigkeit
$Wind=GetValueFloat("KS300_Windgeschwindigkeit");
//Hole KS_300_Es_regnet
$Regen=GetValueBoolean("KS300_Es_regnet");
//Markise einfahren
if ($DS_Ch1 == true || $Regen==true || $Wind >= 10)
{
SetValueBoolean("Markisensteuerung", true);
}
?>
kurze Erklärung zu der Zeile
if ($DS_Ch1 == true || $Regen==true || $Wind >= 10)
du hast die Werte von IPS in die Variablen geholt, die werden dann in dieser Zeile geprüft (If-Abfrage).
die || bedeuten ein LOGISCHES ODER.
Also: WENN DS_Ch1 wahr ODER Regen wahr ODER Wind größer gleich 10 DANN
setze IPS Variable „Markiesensteuerung“ auf wahr.
Hier müsstest du dann noch deine Mariese auch ansteuern. Hier setzt du ja nur die Variable bisher auf True.