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
}
XcodeでSingle View Application を作成します。Main.storyboardファイルを開き、UIデザイナを表示します。UIデザイナに、TextField, Button, Label を一つずつ配置します。
ButtonのTouch DownイベントをView Controllerに作成します。(ボタンをクリックして選択し、右クリックのポップアップウィンドウのTouch Downイベントの右側の[+]アイコンからViewControllerのコードにドラッグ&ドロップします。)
メソッド作成ウィンドウが表示されます。メソッド名はOnButtonTouchDownとします。[Connect]ボタンをクリックします。
Labelコントロールを[Control]キーを押しながらViewControllerのコードにドラッグ&ドロップします。
[Name]欄は"Label1"とします。
同様の手順でTextFieldもViewControllerのコードにドラッグ&ドロップします。
[Name]欄は"Edit1"とします。
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より大きくありません。";
}
}
}
プロジェクトを実行します。シミュレーターが起動し下図の画面が表示されます。
TextFieldに数値の"7"を入力します。入力後ボタンをタップします。ラベルに「5より大きいです。」のメッセージが表示されます。
TextFieldに数値の"3"を入力します。入力後ボタンをタップします。ラベルに「5より大きくありません。」のメッセージが表示されます。条件判定のif文により、5より大きいかの数値の判定ができていることが分かります。