[SWIFT] spécification de plage d'instruction switch

Aperçu

J'ai essayé de décrire comment spécifier la plage de conditions dans l'instruction switch. Je pensais que je ne pouvais définir qu'une valeur spécifique pour la condition de l'instruction switch, donc je la laisserai dans le sens de regarder en arrière par moi-même.

La description

L'instruction switch commute l'instruction à exécuter en fonction de la valeur de l'expression de contrôle.

ViewController.swift


type de commande de commutateur{
cas Condition 1:
    //Traitement lorsque la condition 1 est remplie
cas Condition 2:
    //Traitement lorsque la condition 2 est remplie
default:
    //Que faire si aucune des conditions n'est remplie
}

Il n'y a pas de plage dans la condition et vous pouvez en décrire une spécifique sans aucun problème, mais que devez-vous faire si vous souhaitez remplacer l'instruction if suivante par une instruction switch?

ViewController.swift


let number: Int!
if number > 0 {
    //Traitement lorsque le nombre est positif
} else if number < 0 {
    //Traitement lorsque le nombre est négatif
} else {
    //Traitement lorsque le nombre est 0
}

Dans de tels cas, utilisez * Int.min * ou * Int.max *. Int.min représente la valeur minimale possible du type entier et Int.max représente la valeur maximale possible du type entier. Si vous pensez aux valeurs maximum et minimum des entiers, vous pouvez penser à + ∞ et −∞, mais les données sont différentes. La valeur maximale de l'entier est 9223372036854775807 et la valeur minimale est -9223372036854775807. Puisque les chiffres sont énormes, vous pouvez le considérer comme + ∞ et -∞. Alors, utilisez ceci pour faire une instruction switch. [Ajout] Lorsque la plage aléatoire est de type entier, Int.max sera en dehors de la plage d'entiers positifs dans 1 .. <Int.max, donc 1 ... Int.max Fixé

ViewController.swift


let number = Int.random(in: -100...100)
switch number{
case 1...Int.max:
    //Traitement lorsque le nombre est positif
    //[Postscript]1..<Int.Int pour max.max est hors de portée
case Int.min..<0:
    //Traitement lorsque le nombre est négatif
default:
    //Traitement lorsque le nombre est 0
}

Vous pouvez également l'exécuter lorsque vous souhaitez spécifier la plage sans utiliser Int.max. Si aucun traitement n'est effectué, il sera interrompu par une pause.

ViewController.swift


let number = Int.random(in: 0...10)
switch number{
case 1...5:
    //le nombre est 1~Traitement à 5
case 6...10:
    //le nombre est 6~Traitement à 10
default: break
}

finalement

Je l'avais moi-même résolu uniquement avec l'instruction if sans utiliser autant l'instruction switch, donc Il peut y avoir une erreur dans le contenu. Dans ce cas, merci de le signaler.

Références

Cet article a été rédigé en référence aux informations suivantes.

Recommended Posts

spécification de plage d'instruction switch
instruction switch
Instruction de commutation Java
Étude de l'instruction Java-Part 11-switch
[Swift] instruction switch utilisant tapple
Comprenons l'instruction switch!
[Java] Énumération des branches avec instruction switch
[Java] L'histoire d'une déclaration de commutation vraiment effrayante
J'ai rencontré une grande déclaration de commutateur