if文による条件分岐

swiftで条件判定をする場合は if 文を利用します。

書式

if 条件式{
  ...処理
}

条件式が真(true)である場合は、{}ブロック内の処理が実行されます。


if 条件式{
  ...処理1
}
else{
  ...処理2
}

条件式が真(true)の場合は条件式直後の{}ブロック内の処理1が、条件式が偽(false)の場合はelse直後の{}ブロック内の処理2が実行されます。

if 条件式1{
  ...処理1
}
else if 条件式2{
  ...処理2
}
else{
  ...処理3
}

条件式1が真(true)の場合は条件式直後の{}ブロック内の処理1が、条件式1が偽(false)の場合はelse ifの条件式2の判定が実行され、 真(true)ならばelse if直後の{}ブロック内の処理2が実行されます。else if の条件式2も偽(false)であった場合はelse直後の{}ブロック内の処理3が実行されます。

補足

swiftでは条件式をかっこで囲まないのが正式な記述ですが、かっこで囲んでも動作します。
以下の記述でもビルド可能です。

if (条件式){
  ...処理1
}
else{
  ...処理2
}

プログラム例

UI

XcodeでSingle View Application を作成します。Main.storyboardファイルを開き、UIデザイナを表示します。UIデザイナに、TextField, Button, Label を一つずつ配置します。
if文による条件分岐:画像1

ButtonのTouch DownイベントをView Controllerに作成します。(ボタンをクリックして選択し、右クリックのポップアップウィンドウのTouch Downイベントの右側の[+]アイコンからViewControllerのコードにドラッグ&ドロップします。)
if文による条件分岐:画像2

メソッド作成ウィンドウが表示されます。メソッド名はOnButtonTouchDownとします。[Connect]ボタンをクリックします。
if文による条件分岐:画像3

Labelコントロールを[Control]キーを押しながらViewControllerのコードにドラッグ&ドロップします。
if文による条件分岐:画像4

[Name]欄は"Label1"とします。
if文による条件分岐:画像5

同様の手順でTextFieldもViewControllerのコードにドラッグ&ドロップします。
if文による条件分岐:画像6

[Name]欄は"Edit1"とします。
if文による条件分岐:画像7

コード

ViewController.swift に以下のコードを記述します。実際に記述する部分はOnButtonTouchDown()メソッド内になります。

//  ViewController.swift
//  control-flow-demo
//
//  Created by Penta on 2016/02/14.
//  Copyright c 2016年 iPentec. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBOutlet weak var Edit1: UITextField!
    @IBOutlet weak var Label1: UILabel!
    
    @IBAction func OnButtonTouchDown(sender: AnyObject) {       
        var value:String?;
        value = Edit1.text;
        
        var num:Int?;
        if value != nil{
            num = Int(value!);
            if 5 < num{
                Label1.text="5より大きいです。";
            }else{
                Label1.text="5より大きくありません。";
            }
        }
    }
}

解説

文字列型(String)の変数valueを宣言します。TextField (Edit1)に入力された値を読み出し、valueに格納します。続いて数値型(Int)の変数numを宣言します。valueの値がnullでない場合は、valueの値を数値型(Int)に変換し、numに代入します。その後numの値を判定します。numの値が5より大きければ、ラベルに「5より大きいです。」のメッセージを表示します。そうでない場合は「5より大きくありません。」のメッセージをラベルに表示します。

補足

以下の記述でも動作します。

    @IBAction func OnButtonTouchDown(sender: AnyObject) {       
        var value:String?;
        value = Edit1.text;
        
        var num:Int?;
        if (value != nil){
            num = Int(value!);
            if (5 < num){
                Label1.text="5より大きいです。";
            }else{
                Label1.text="5より大きくありません。";
            }
        }
    }

実行結果

プロジェクトを実行します。シミュレーターが起動し下図の画面が表示されます。
if文による条件分岐:画像8

TextFieldに数値の"7"を入力します。入力後ボタンをタップします。ラベルに「5より大きいです。」のメッセージが表示されます。
if文による条件分岐:画像9

TextFieldに数値の"3"を入力します。入力後ボタンをタップします。ラベルに「5より大きくありません。」のメッセージが表示されます。条件判定のif文により、5より大きいかの数値の判定ができていることが分かります。
if文による条件分岐:画像10


AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2016-02-14
Copyright © 1995–2025 iPentec all rights reserverd.