UITextField 入力値が連番だった場合アラート表示（4文字）パターン２

#今回の内容

* 昨日、投稿した`入力値が連番だった場合アラート表示`機能の別パターンのコードです。

#コードと簡単解説

* 今回は、入力値を１文字ずつ配列に入れてから、計算などをしています。
 * 最初の`if文`で`1111`などの入力値なのかを調べます。
 * 次は、 `switch{}`内で`1234`や`4321`などの入力値なのかを調べます。 

```Swift:

           ~~~~~~~~~~省略~~~~~~~~~~

    var textContents = [String]()

           ~~~~~~~~~~省略~~~~~~~~~~

        textContents = []
        
        for text in judgeTarget{
            
            textContents.append(String(text))
        }
        
        if textContents[0] == textContents[1] &&
           textContents[0] == textContents[2] &&
           textContents[0] == textContents[3]{
            
            alert()
            
        }else{
            
            switch Int(textContents[0])! < Int(textContents[3])!{
            
            case true:
                if Int(textContents[3])! - Int(textContents[0])! == 3 &&
                   (Int(textContents[1])! - Int(textContents[0])!) + (Int(textContents[3])! - Int(textContents[2])!) == 2{
                    
                    alert()
                }
                
            case false:
                
                if Int(textContents[0])! - Int(textContents[3])! == 3 &&
                   (Int(textContents[0])! - Int(textContents[1])!) + (Int(textContents[2])! - Int(textContents[3])! ) == 2{
                     
                     alert()
                 }
                
            }
        }
```

## 入力値が1234の場合 
* `switch{}`内で`case true:`の処理が働きます。
* まずは、1文字目の値と4文字目の値の差が3である事を調べます。
* 次に、2文字目の値と1文字目の値の差と4文字目の値と3文字目の値の差の合計が`2`になるのであれば、4文字の連番だと確認ができます。

## 入力値が4321の場合 
* `switch{}`内で`case false:`の処理が働きます。
* まずは、4文字目の値と1文字目の値の差が3である事を調べます。
* 次に、1文字目の値と2文字目の値の差と3文字目の値と4文字目の値の差の合計が`2`になるのであれば、4文字の連番だと確認ができます。

#全てのコード

```Swift:
import UIKit

class ViewController: UIViewController {
    
    
    @IBOutlet weak var textField: UITextField!
    
    var textContents = [String]()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        textField.addTarget(self, action: #selector(judgeText), for: .editingChanged)
    }
    
    @objc func judgeText(sender:UITextField){
        
        if sender.text?.count == 4{
            
            judge(judgeTarget: sender.text!)
            
        }
        
    }
    
    func judge(judgeTarget:String){
        
        textContents = []
        
        for text in judgeTarget{
            
            textContents.append(String(text))
        }
        
        if textContents[0] == textContents[1] &&
           textContents[0] == textContents[2] &&
           textContents[0] == textContents[3]{
            
            alert()
            
        }else{
            
            switch Int(textContents[0])! < Int(textContents[3])!{
            
            case true:
                if Int(textContents[3])! - Int(textContents[0])! == 3 &&
                   (Int(textContents[1])! - Int(textContents[0])!) + (Int(textContents[3])! - Int(textContents[2])!) == 2{
                    
                    alert()
                }
                
            case false:
                
                if Int(textContents[0])! - Int(textContents[3])! == 3 &&
                   (Int(textContents[0])! - Int(textContents[1])!) + (Int(textContents[2])! - Int(textContents[3])! ) == 2{
                     
                     alert()
                 }
             }
         }

    }
    
    func alert(){
        
        let alert = UIAlertController(title: "連番です", message: "連番だけど大丈夫かな？", preferredStyle: .alert)
        
        alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
        alert.addAction(UIAlertAction(title: "キャンセル", style: .cancel, handler: nil))
        
        self.present(alert, animated:true, completion: nil)
    }
}
```
# 終わり
ご指摘、ご質問などありましたら、コメントまでお願い致します。