

１０回ボタンを押すとメッセージが表示されるプログラムを書こうとしたのですが、ifの部分でexpected declaration
のエラーが発生します。どうすれば解決できるのかご教授ください。

[code]

    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.
        }
    
        var CountNum = 10
    
        @IBOutlet weak var label: UILabel!
    
        @IBAction func button(sender: AnyObject) {
            label.text = String(CountNum)
            CountNum--
        }
        if CountNum == 0 {//ここでエラーが出てくる
        label.text = "0になりました"
        }
    }
    
[/code]


CC BY-SA 3.0
2015-01-27T15:08:36.050
5445
2015-02-26T16:39:54.430
2015-01-27T15:50:17.850
30
7874
question
swift
if の箇所で expected declaration というエラーがでる


手元でも確認しましたが、  
Expected declarationのエラーが起きますね。

これは、クラス内部で直接処理を書いている為です。

[code]

    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.
        }
    
        var CountNum = 10
    
        @IBOutlet weak var label: UILabel!
    
        @IBAction func button(sender: AnyObject) {
            label.text = String(CountNum)
            CountNum--
        }
        // ここはクラス内部
        //if CountNum == 0 {
        //label.text = "0になりました"
        //}
    }
    
[/code]

そのため、エラーになるのです。  
if文は、必ず関数内部に書きましょう。

１０回ボタンを押すとメッセージが表示されるプログラムの場合、

[code]

    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.
        }
    
        var CountNum = 10
    
        @IBOutlet weak var label: UILabel!
    
        @IBAction func button(sender: AnyObject) {
            CountNum--
            if CountNum == 0 {
                label.text = "0になりました"
            }else{
                label.text = String(CountNum)
            }
        }
    }
    
[/code]

このようにすると良いと思われます。


CC BY-SA 3.0
2015-01-27T15:29:39.267
5446
2015-01-27T15:29:39.267
7875
5445
answer