[SWIFT] Comprenons l'instruction switch!

Cette fois, j'ai découvert l'instruction switch, donc je vais la sortir.

Qu'est-ce qu'une instruction switch?

*** En un mot, l'instruction switch est une syntaxe de contrôle qui utilise un modèle pour basculer l'instruction d'exécution en fonction de la valeur de l'expression de contrôle. *** ***

La méthode d'écriture de base est la suivante

qiita.rbvar


type de commande de commutateur{
cas modèle 1:
Instruction exécutée lorsque l'expression de contrôle correspond au modèle 1

cas modèle 2:
Instruction exécutée lorsque l'expression de contrôle correspond au modèle 2

default:
Instruction exécutée lorsque l'expression de contrôle ne correspond à aucun modèle
}

L'instruction switch a la caractéristique qu'une fois qu'elle correspond et que l'instruction d'exécution est exécutée, la correspondance se termine et les modèles suivants sont ignorés. L'instruction if et l'instruction guard étaient des branches dans deux cas, qu'elles tiennent ou non, mais l'instruction *** switch peut se ramifier dans plus de cas. *** ***

Regardons un exemple simple ensuite

qiita.rbvar


let a = -2
switch a {

case Int.min..<0:
print("est une valeur négative d'un")

case 1..<Int.max:
print("a est une valeur positive")

default:
print("a vaut 0")

}

Résultat d'exécution:a est une valeur négative

où mot-clé

Vous pouvez utiliser le mot-clé where pour ajouter des conditions correspondant à votre cas. C'est tout, alors jetons un coup d'œil à la syntaxe de base tout de suite!

qiita.rbvar


type de commande de commutateur{
expression de contrôle de modèle de cas:
La formule de contrôle correspond au modèle 1,Et,Instruction exécutée lorsque l'expression conditionnelle est satisfaite

default:
Instruction exécutée lorsque l'expression de contrôle ne correspond à aucun modèle

Voici un exemple simple.

qiita.rbvar


let optionalA: Int? = 5

switch optionalA {

case .some(let a)where a > 10:
print("Valeur supérieure à 10\(a)Existe")
default:
print("La valeur n'existe pas,Ou moins de 10")

Résultat d'exécution:La valeur n'existe pas,Ou moins de 10

Dans l'exemple ci-dessus, la constante optionalA a une valeur, elle correspond donc à la partie *** case .some (let a) ***, mais ne remplit pas la condition où a> 10.

déclaration break

L'instruction break est une instruction qui interrompt l'exécution de l'instruction switch case. Regardons un exemple simple.

qiita.rbvar


let a = 1
switch a{
case 1: 
print("Vous vous êtes connecté avec succès")
break
print("Je n'ai pas réussi à me connecter")
default:
break
}
Résultat d'exécution:Vous vous êtes connecté avec succès

Dans l'exemple ci-dessus, deux fonctions print () sont écrites dans le cas correspondant 1: mais l'instruction break est écrite avant la deuxième fonction d'impression, donc la deuxième impression La fonction ne sera pas exécutée.

étiquette

L'étiquette est un mécanisme permettant de spécifier la cible de contrôle de l'instruction break. Il est utilisé dans les cas où il est nécessaire de spécifier l'instruction switch qui est la cible de l'instruction break, par exemple lorsque l'instruction switch est imbriquée.

Nesting: Un terme de programmation qui signifie une structure dans laquelle la même chose est placée dans une certaine chose. *** ***

Regardons la structure de base!

qiita.rbvar


Nom de l'étiquette:instruction switch
nom de l'étiquette de rupture

Regardons maintenant un exemple où une étiquette est nécessaire.

qiita.rbvar


import UIKit
let value = 0 as Any

outerSwitch: switch value{
case let int as Int:
    let description: String
    switch int {
    case 1,3,5,7,9:
        description = "Impair"
   case 2,4,6,8,10:
        description = "Même"
  default:
        print("N'est pas applicable")//Lisez ici
        break outerSwitch
    }
print("La valeur est\(description)est")

default:
    print("La valeur n'est pas de type Int")
}

Résultat d'exécution:N'est pas applicable

Dans l'exemple ci-dessus, si la valeur de type Any est un type Int compris entre 1 et 10, c'est un programme qui indique si la valeur est paire ou impaire. Étant donné que la valeur spécifiée est 0, il est indiqué que la valeur est hors de portée.

*** Maintenant, changeons la spécification de la valeur let en "aaa". *** ***

qiita.rbvar


import UIKit
let value = "aaa" as Any

outerSwitch: switch value{
case let int as Int:
    let description: String
    switch int {
    case 1,3,5,7,9:
        description = "Impair"
   case 2,4,6,8,10:
        description = "Même"
default:
        print("N'est pas applicable")
        break outerSwitch
    }
print("La valeur est\(description)est")

default:
    print("La valeur n'est pas de type Int")//Lisez ici
}

Résultat d'exécution:La valeur n'est pas de type Int

La deuxième fonction d'impression est appelée car la valeur spécifiée de cette manière n'est pas de type Int.

déclaration fallthrough

L'instruction fallthrough est une syntaxe de contrôle qui met fin à l'exécution d'un cas dans une instruction switch et exécute le cas suivant.

qiita.rbvar


let a = 1
switch a{
case 1: 
print("Vous vous êtes connecté avec succès")
fallthrough
case 2:
print("Je n'ai pas réussi à me connecter")
default:
print("default")
}

Résultat d'exécution:
Vous vous êtes connecté avec succès
Je n'ai pas réussi à me connecter

Dans l'exemple ci-dessus, l'instruction fallthrough déplace l'exécution vers le cas suivant, case2. Par conséquent, cas1 et cas2 sont générés.

Recommended Posts

Comprenons l'instruction switch!
Comprenons la déclaration if!
Comprenons la déclaration for-in!
Comprenons la fonction!
instruction switch
Comprenons le type facultatif (enveloppé)!
Comprenons la fermeture!
Instruction de commutation Java
spécification de plage d'instruction switch
Étude de l'instruction Java-Part 11-switch
La déclaration While n'est-elle pas mauvaise?
Améliorons l'application
12 Correspond à l'instruction while
Essayons le tutoriel S2Struts (# 3_180425)
Comprendre la méthode d'assistance form_with
Essayons le tutoriel S2Struts (# 5_180526)
Essayons le tutoriel S2Struts (# 4_180505)
Résolvons le problème FizzBuzz!
Essayons le tutoriel S2Struts (# 2_180424)
Créons une application TODO en Java 5 Changer l'affichage de TODO
Comprendre le mécanisme de base de log4j2.xml
Basculer dynamiquement la base de données à laquelle se connecter
[java8] Pour comprendre l'API Stream
[Java] Énumération des branches avec instruction switch
Vérifions le filtre de recherche d'images
[Java] L'histoire d'une déclaration de commutation vraiment effrayante
J'ai rencontré une grande déclaration de commutateur
Oui, prévisualisons l'image. ~ part5 ~
Traitement d'image: jouons avec l'image
Attaquons la vulnérabilité (2) Redirection ouverte