Les instructions conditionnelles constituent l’épine dorsale de nombreux langages de programmation et de script. Dans AppleScript, ils vous permettent d'ajouter une autre dimension de complexité à vos scripts en analysant et en répondant à diverses situations. Ce tutoriel va examiner de près si et sinon déclarations et les différentes façons de les implémenter dans un script.
Jusqu'ici, nous avons publié deux articles parfaits pour passer d'un novice complet à une personne capable de travailler avec compétence sur un script de base:
Ces didacticiels offrent une vue d'ensemble et vous donnent une bonne idée du fonctionnement d'AppleScript ainsi que des types de structures de programmation impliqués. Si vous souhaitez vraiment devenir un rédacteur de script maître, vous devrez approfondir la syntaxe et les constructions qui composent AppleScript..
Ne vous inquiétez pas, nous sommes avec vous à chaque étape. Ceci est le premier d'une série d'articles qui va examiner longuement différents aspects d'AppleScript afin de vous permettre d'exploiter son formidable pouvoir d'automatisation de votre Mac..
Pointe: Pour exécuter les scripts de cet article, vous devez ouvrir l'application "Editeur AppleScript", qui se trouve dans Applications> Utilitaires.
Dans AppleScript, vous aurez du mal à trouver deux caractères qui rivalisent avec le pouvoir de "if". Si vous apprenez à manier correctement cet outil apparemment simple, vous irez loin.
Un basique si déclaration fonctionne beaucoup comme un dire bloc. Juste pour un rappel, voici la structure d'un dire:
[applescript]
dire à l'application "Safari"
Activer
fin dire
[/ applescript]
Comme vous pouvez le constater, ce script lance Safari. Il comporte trois lignes: la première et la dernière comprennent le tell "block", qui doit toujours contenir un fin déclaration. Tout ce qui se trouve entre ces deux lignes constitue le corps du bloc tell.
Les instructions conditionnelles, ainsi que de nombreux autres concepts, empruntent cette même structure, mais cette fois-ci, nous utilisons si au lieu de dire.
[applescript]
si c'est vrai alors
--faire quelque chose
fin si
[/ applescript]
Cette structure est assez simple et devrait avoir un sens parfait. Tout d’abord, vous commencez votre déclaration conditionnelle et vous la qualifiez avec un booléen, puis vous écrivez vos commandes qui se déclenchent dans le cas d’une vérité et, enfin, vous fermez votre déclaration avec un fin.
Pointe: Dans l'éditeur AppleScript, vous n'avez pas besoin de taper "fin si", mais simplement "fin". Le compilateur ajoutera automatiquement le reste, même si vous avez plusieurs instructions de fin qui appartiennent à différents types de blocs. Il comprend tout pour vous!
Avant d'aller plus loin, il est absolument essentiel que vous compreniez exactement ce que je veux dire lorsque je parle d'un booléen. Boolean est un type de données qui ne peut avoir qu'une des deux valeurs: true ou false. Dans le monde de l'informatique, les absolus existent absolument. Soit quelque chose est, ou ce n'est pas, il n'y a pas d'intermédiaire.
AppleScript peut facilement déterminer si certaines choses sont vraies et utiliser cette connaissance pour activer une instruction conditionnelle. Pour l'essayer, essayez de saisir une déclaration d'égalité directement dans l'éditeur AppleScript et de l'exécuter..
Comme vous pouvez le constater, le compilateur a évalué l'instruction "10> 1" et a correctement renvoyé "true". Si nous retournons ce symbole d'égalité et exécutons "10 < 1", "false" is returned. This goes way beyond numeric expressions, pretty much any statement that AppleScript is able to evaluate should work as well. Here's a quick check of the current day of the week, which returns "true".
Maintenant que vous comprenez ce qu'est un booléen, il est plus facile de comprendre le fonctionnement des conditions. Comme nous l'avons vu dans le graphique ci-dessus, une déclaration conditionnelle dit: "si ce booléen est évalué comme étant vrai, faites quelque chose".
Voyons cela en pratique en utilisant l'énoncé "10> 1" que nous avons testé précédemment:
[applescript]
si 10> 1 alors
retour "C'est vrai!"
fin si
[/ applescript]
Ici, nous avons remplacé le mot "true" par quelque chose que nous voulons que AppleScript évalue. La structure ici est exactement ce que nous avons vu auparavant:
Étant donné cette structure, les commandes à l'intérieur de l'instruction if ne seront exécutées que si le booléen s'avère vrai. Dans ce cas, l'instruction est vraie, nous verrons ce qui suit dans la partie "Résultat" de la fenêtre de l'éditeur AppleScript.
Au cas où vous vous le demanderiez, il existe une forme spéciale et succincte de si déclaration qui n'occupe qu'une seule ligne. Cela ne nécessite pas de "fin" et ne peut prendre aucune de la complexité supplémentaire que nous allons examiner dans la section suivante, mais c'est utile pour les cas simples.
[applescript]
--Ligne unique si déclaration
si 10> 2, retournez "oui"
[/ applescript]
Si les déclarations sont géniales, mais elles sont un peu limitées dans la forme que nous avons vue jusqu'à présent. Par exemple, que se passe-t-il si le booléen du script s'avère être faux? Voici un exemple:
[applescript]
ensemble x à 20
si 10> x alors
retourne "10 est plus grand que" & x
fin si
[/ applescript]
Comme vous pouvez le constater, j'augmente progressivement la complexité afin de vous familiariser avec les schémas et les constructions courants. Dans cet exemple, nous définissons d'abord une variable, X, puis définissez cette variable égale à 20. Maintenant, quand nous courons notre si déclaration, le nombre 10 est comparé à la variable.
Dans ce cas, 10 n'est pas supérieur à 20, le booléen sera donc faux. Cela signifie que notre script ne fera rien du tout! Pour résoudre ce problème, nous nous tournons vers autre. Modifions un peu notre script:
[applescript]
ensemble x à 20
si 10> x alors
retourne "10 est plus grand que" & x
autre
return "10 n'est pas plus grand que" & x
fin si
[/ applescript]
Le grand avantage d'AppleScript est qu'il est lisible par tous. Si vous lisez simplement ce script à haute voix, vous pourrez dire exactement ce qu'il fait. Voici le récapitulatif:
Étant donné que 10 n’est pas supérieur à 20, la deuxième déclaration sera retournée. Votre résultat devrait ressembler à ceci:
Maintenant que nous pouvons prendre en compte deux scénarios booléens différents, nous sommes beaucoup mieux à même de relever des défis de script complexes..
Comme vous pouvez l’imaginer, même cela n’est pas suffisant pour rendre compte de toutes les situations différentes que vous allez rencontrer. Peut-être avons-nous un scénario assez complexe où plusieurs résultats différents sont possibles.
Dans ce scénario, nous pouvons implémenter sinon si de continuer à ajouter de la complexité à notre si déclaration. Considérer ce qui suit:
[applescript]
définir le week-end sur le jour de la semaine du (date actuelle)
if (theWeekDay = Friday) alors
retour "Vous êtes presque libre!"
else if (theWeekDay = Saturday) alors
retour "C'est le week-end!"
else if (theWeekDay = Sunday) alors
retour "Détendez-vous, pour demain nous travaillons."
autre
retour "Accrochez-vous, ce n'est pas encore le week-end!"
fin si
[/ applescript]
Encore une fois, même si vous n'êtes pas familier avec AppleScript, le langage naturel permet de comprendre facilement ce qui se passe. Tout d'abord, nous définissons une variable pour le jour de la semaine en cours. Ensuite, nous effectuons une série de tests en utilisant si, sinon si et autre pour arriver à un message de retour approprié pour le jour de la semaine en cours.
En cours d'exécution, le script essaiera le premier si déclaration. Si cela s'avère vrai, la première instruction return sera exécutée et le script se terminera (aucune autre mesure n'est prise). Cependant, si cette affirmation s'avère fausse, le premier sinon si est essayé, puis le deuxième et enfin, si rien de tout cela n’est prouvé, le dernier autre lance et renvoie une déclaration à ce sujet ne pas encore le week-end.
le sinon si La structure est incroyablement puissante et vous permet de prendre en compte un grand nombre de scénarios différents. En codant certains projets, vous serez parfois tenté d’enchaîner cinq, dix ou même quinze sinon si déclarations pour parcourir toutes les possibilités disponibles. Malheureusement, ce n'est pas typiquement un bon moyen de coder et peut mener à une tonne de ballonnement inutile..
Toujours être attentif lors de l'utilisation sinon si et demandez-vous s'il existe ou non une meilleure façon de faire ce que vous essayez d'accomplir. Il est souvent beaucoup plus pratique et bref d'utiliser une boucle, mais c'est un article pour un autre jour (à venir!).
Un dernier conseil rapide concernant si déclarations. Une alternative à autre est d'utiliser ou au lieu. Voici une version simplifiée du script de la semaine utilisant ou et seulement deux déclarations de retour possibles.
[applescript]
définir le week-end sur le jour de la semaine du (date actuelle)
if (theWeekDay = samedi) ou (theWeekDay = dimanche) alors
retour "C'est le week-end!"
autre
retour "Accrochez-vous, ce n'est pas encore le week-end!"
fin si
[/ applescript]
Cela couvre la plupart de ce que vous devez savoir sur les conditions. Ouvrez cracker l'éditeur AppleScript et commencez à expérimenter avec vos propres instructions conditionnelles. Quels scripts cool pouvez-vous venir avec?
Ceci n'est que la pointe de l'iceberg proverbial en ce qui concerne notre couverture d'AppleScript. Il s’agit d’un sujet extrêmement vaste qui a le potentiel d’accroître votre maîtrise de votre Mac. Nous aurons donc beaucoup plus d’excellents tutoriels AppleScript pour vous aider à devenir un véritable expert en automatisation..