java if abfrage einmal ausführen?
Java Code
if(user.player.health <= 0){ Java Code
user.player.money--;
}else if(user.player.health >= 0){
}
ich mochte das wenn der Wert user.player.health 0 erreicht hat einmalig 50 von dem wert money Abgezogen werden
vielen dank der122345
4 Antworten
Um deine Frage zu beantworten, muss man erst einmal wissen, was der User überhaupt tun kann.
Was passiert, wenn der User 0 oder weniger Leben hat?
-> Normalerweise endet der derzeitige Prozess, oder der Prozess führt sich fort, indem der User wieder 100% "health" (Leben) hat und damit würde die Abbruchbedingung nur 1 mal stattfinden.
Was passiert, wenn der User kein Geld mehr hat?
-> Der Prozess endet, oder ihm wird kein Geld mehr abgezogen.
if( user.player.health <= 0 ) { // user verliert 50 money user.player.money -= 50; // user respawnt user.player.health = 100; // Geld ist im Minusbereich if(user.player.money < 0) user.player.money = 0; }
Weitere else Anweisungen finde ich unnötig, da erstens jede weitere Anweisung auf die Performance geht und zweitens man geht immer davon aus, dass der User über 0 Leben hat.
Hallo also ich hoffe mal, ich habe deine Frage richtig verstanden.
//Wenn user.player.health kleiner 0 ist 1 abziehen
if(user.player.health <= 0){
user.player.health--;
//Wenn user.player.health größer 0 ist
}else if(user.player.health >= 0){
//Do anything
//Wenn user.player.health gleich 0 ist 50 abziehen
}else if(user.player.health == 0){
user.player.health -= 50;
}
Ich hoffe ich konnte deine Frage richtig beantworten
In deinem Codebeispiel werden beide Abfragen ausgeführt, ich hoffe, das ist dir bewusst (für den Fall user.player.health = 0).
Implementier das doch so, wie du es beschrieben hast. Sollte die Abfrage = 0 ergeben, dann ist user.player.money = user.player.money - 50. Du solltest deine Abfragen aber noch entsprechend überarbeiten, da das sonst mehrfach zutreffen kann.
Stimmt. Allerdings kann man sich das "=0" bei der zweiten Abfrage dann sparen.
if (user.player.health <=0) {
user.player.money = user.player.money - 50;
}
So müsste es meine ich gehen..
jetzt werden sekündlich 50 abgezogen ich möchte aber das nur einmalig 50 abgezogen werden
Es wir der Inhalt von nur einer Abfrage ausgeführt.