Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-03-2006, 18:18   #1 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 97
Bessere Lösung? als mehrfach if Abfrage

Hallo

Gibt es keine elegantere Lösung um die Höhe einer Punktzahl und dementsprechend des Level zubestimmen als so:
ActionScript:
  1. zahl = 110;
  2. test = function(){
  3. if (zahl > 0 && zahl < 99 ){
  4. trace ("Level1");
  5. }
  6. if (zahl > 100 && zahl < 199 ){
  7. trace ("Level2");
  8. }
  9. if (zahl > 200 && zahl < 299 ){
  10. trace ("Level3");
  11. }
  12. if (zahl > 300 && zahl < 399 ){
  13. trace ("Level4");
  14. }
  15. if (zahl > 400 && zahl < 499 ){
  16. trace ("Level5");
  17. }
  18. }
  19. test();

bohnen
bohnen ist offline   Mit Zitat antworten
Alt 29-03-2006, 18:46   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
sowas wie:
ActionScript:
  1. level = Math.ceil(punkte / 100);
?
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 29-03-2006, 18:52   #3 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
ansonsten kann man multiple if-abfragen auch gut mit switch machen.

beispiel:
PHP-Code:
switch (wert) {
    case 
1:
        
wenn wert 1 tue dies;
        break;
    case 
22:
        
wenn wert 22 tu das;
        break;
    default:
        
sonst tue das;
        break;

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 29-03-2006, 19:00   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Naja, aber auf Bereiche kann er ja so nicht checken, in Turbo Pascal ging das noch

Eine Alternative wäre auch noch folgendes:
ActionScript:
  1. var value = 234;
  2. limits = [100, 200, 300, 400, 500];
  3. var i = 0;
  4. var l = limits.length;
  5.  
  6. for (i = 0; i < l; i++) {
  7.     if (limits[i] > value) {
  8.         break;
  9.     }
  10. }
  11.  
  12. level = i;
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)

Geändert von Janoscharlipp (29-03-2006 um 19:15 Uhr)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 29-03-2006, 19:01   #5 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 97
Danke für die Antworten.

@Janoscharlipp

Beispiel 1 gefällt mir.

Es wird ja immer besser.


@gaspode
Ist so der Code nicht fast gleich lang?





Bohnen

Geändert von bohnen (29-03-2006 um 19:03 Uhr)
bohnen ist offline   Mit Zitat antworten
Alt 29-03-2006, 19:11   #6 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 97
Mhh...

Wenn ichs mir so trace gibt er 0 aus. ???
setze ich die var value auf 4 ist level 5 ?

ActionScript:
  1. var value = 234;
  2. limits = [100, 200, 300, 400, 500];
  3. var i = 0;
  4. var l = limits.length;
  5. for (i = 0; i < l; i++) {   
  6. if (limits[i] < value) {       
  7. break;   
  8. }
  9. }
  10. level = i;
  11. trace(level);
bohnen ist offline   Mit Zitat antworten
Alt 29-03-2006, 19:15   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
ups, hatte es nur so hier reingeschrieben, nicht ausprobiert, und wie immer war der Fehler mit dabei, es muss ein > statt einem < in dem if stehen! habs oben editiert.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 29-03-2006, 19:20   #8 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 97
Der hat rückwärts gearbeitet

Danke
bohnen ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele