Flash / Flex / ActionScript/Language/Conditional operator

Материал из Web эксперт
Перейти к: навигация, поиск

The Conditional Operator: (logical expression) ? if true : if false;

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var weather:String = "rain";
        
        (weather == "hail") ? trace("bringMotorcycleHelmet") : trace("bringStrawHat");
        //This is basically the same as writing:
        if (weather == "hail") {
           trace("bringMotorcycleHelmet");
        } else {
           trace("bringStrawHat");
        }
    }
  }
}



Use conditional operator in for loop

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        for (var i:Number = 50; i > -50; i -= (i > 0 || i < -30) ? 5 : 10){
          trace(i);
        }
    }
  }
}
50
45
40
35
30
25
20
15
10
5
0
-10
-20
-30
-40
-45



Use conditional operator to set a default value for an undefined variable

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var weather:String;
        
        weather = weather ? weather : "partly cloudy";
        
        trace(weather);
    }
  }
}



You can also use the conditional operator to return values that can be stored in a variable.

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var weather:String = "rain";
        
        var hatType:String = (weather == "hail") ? "helmet" : "straw";
        
        trace(hatType);
    }
  }
}