2009-08-24 8 views
1

Lequel des énoncés suivants traduit le mieux l'énoncé anglais «S'il pleut, nous regarderons un film, sinon nous irons au parc.ActionScript if/else syntaxe Question

a. if (rainy = true) { gotoAndStop ("movie"); } 
    b. if (rainy == true) { gotoAndStop ("movie"); } 
    c. if (rainy = true) { gotoAndStop ("movie"); } else { gotoAndStop ("park"); } 
    d. if (rainy == true) { gotoAndStop ("movie"); } else { gotoAndStop ("park"); } 

Ma réponse serait "d" - est-ce correct?

Répondre

4

Oui, 'd' est la bonne réponse. La différence entre = et == est que == compare et renvoie un booléen (vrai ou faux) sur lequel vous travaillez (appelé 'branchement').

= est appelé l'opérateur d'affectation et bien que le code à écrire soit parfaitement valide, ce n'est pas ce que vous voulez normalement utiliser dans une instruction if.

if(x = 5) { 
    doStuff(); 
} 

Fondamentalement signifie "mettre 5 au lieu de x, si x est non nul, appelez doStuff".

Une autre chose à noter est quand il s'agit de booléens, il est « plus sûr » d'écrire

if (rainy) { 
    gotoAndStop("movie"); 
} else { 
    gotoAndStop("park); 
} 
0

ou ... essayer, fait la même chose .... mais il semble sexy :)

var activity:String = (rainy) ? "movie": "park"; 
gotoAndStop(activity); 
+0

A) ce n'est pas une réponse à la question. B) Il est concevable que l'OP ne connaisse pas d'opérateurs ternaires. Pourriez-vous donner un peu plus de contexte à ce que la déclaration fait. –

0

C'est cool aussi:

gotoAndStop(rainy ? "movie" : "park"); 
Questions connexes