Cette fois, j'ai découvert l'instruction switch, donc je vais la sortir.
*** 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
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.
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.
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.
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