PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wann springt mein Prog aus der if-Konstruktion?



ravenmaster
15.06.2009, 12:33
Hey Leutz,

wann springt mein Programm aus einem If-Konstrukt wenn der Code wie folgt aussieht:



If das und das Then
If das und das then
mache das und das
End If
Else
If das und das then
mache das und das
End If
End If

Springt das Programm direkt beim ersten End If aus dem übergeordneten If raus oder erst beim letzte?

Hab hier nämlich so ein Ding und irgendwie will es nicht das machen was ich will ^^

LeadOr
15.06.2009, 12:54
kleines beispiel ohne das und jenes ^^

If farbe = grün then
If größe > 5 then
messagebox blaaaa
end if
end if

wenn die farbe grün ist wird geprüft ob die größe größer als 5 ist
sollte das nicht der fall sein gehts zum nächsten if dort dann wieder dasselbe

zudem kannste dir auch beim debuggen die einzelschrtte anschauen dann merkste wos hängt ;)

edit: achso du willst wissen obs nach

if größe > 5 then
"lustige sachen hier"
endif

rausspringt eigentlich sollte das ja niht der fall sein



If farbe = grün then
If größe > 5 then
messagebox blaaaa
end if
messagebox("grün")
end if

sowas meinste ? eigentlich müsste ne msgbox angezeigt werden egal wie groß irgendwas ist solange es grün ist



achsooo du hast n else dadrinne - sry bin grad erst aufgestanden^^



If das und das Then 'rot = eingetretener fall
If das und das then
mache das und das
End If
Else
If das und das then
mache das und das
End If
End If

sollte das so aussehen dann springt es nach dem 1. end if raus - weil dann das else ja nicht gebraucht wird

Kolabi
15.06.2009, 20:06
Man kann die Bedingungen auch zusammenfügen.



int x = 3;
int y = 9;
if ( x == 3 && y == 9)
{
cout << "x ist gleich 3 und y ist gleich 9..." << endl;
}


&& = AND-Operator
|| = OR-OPERATOR

Bsp.:


if(1==1 && 2==2)
{
cout<<"1 ist gleich 1 und 2 ist gleich 2\n";
}

if(3==3 || 3==4)
{
cout<<"Entweder ist 3 gleich 3 oder 3 ist gleich 4 oder beides ist wahr\n";
}

if(!(3==2))
{
cout<<"3 ist gleich 2 ist nicht wahr. Das bedeutet, dass 3 ungleich 2 ist.\n";

}

dlite
18.06.2009, 14:06
es hätte auch nur ein if gebraucht^^
2x die selbe bedingung ist iwie blöd.

@Kolabi: end if und if sind anweisungen aus VB.net kein C++^^

Ancient87
18.06.2009, 14:49
das EndIf (ende eines if blocks) bezieht sich immer auf das letzte vorangegegangene If clause.
nice and simple