Swiftでサンプルアプリ作っています。
とりあえず、全部やってみた後で色々考えた結果、1つ分からないことがあります。
あ、まずはコードです。
// // ViewController.swift // Sample001 // // Created by ####### on 2016/09/12. // Copyright © 2016年 Jwebgate. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutlet weak var resultLabel: UILabel! @IBOutlet weak var signalImageView: UIImageView! var blueImage:UIImage! var yellowImage:UIImage! var redImage:UIImage! override func viewDidLoad() { super.viewDidLoad() blueImage = UIImage(named:"signal_blue.png") yellowImage = UIImage(named:"signal_yellow.png") redImage = UIImage(named:"signal_red.png") signalImageView.image = redImage } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func BlueBtnPushed(sender: AnyObject) { if signalImageView.image == blueImage { resultLabel.text = "せいかい!" } else { resultLabel.text = "まちがい!" } resultLabel.textColor = UIColor.blueColor(); randomSignal() } @IBAction func YellowBtnPushed(sender: AnyObject) { if signalImageView.image == yellowImage { resultLabel.text = "せいかい!" } else { resultLabel.text = "まちがい!" } resultLabel.textColor = UIColor.yellowColor(); randomSignal() } @IBAction func RedBtnPushed(sender: AnyObject) { if signalImageView.image == redImage { resultLabel.text = "せいかい!" } else { resultLabel.text = "まちがい!" } resultLabel.textColor = UIColor.redColor(); randomSignal() } func randomSignal() { let randomNumber = arc4random() % 3 if randomNumber == 0 { signalImageView.image = blueImage } else if randomNumber == 1 { signalImageView.image = yellowImage } else { signalImageView.image = redImage } } }
こんな感じのものです。
各ボタンを押した時の処理の最後で、
表示されるべき信号の画像が乱数によって変わっていることはわかります。
私はプログラムを上から読んでいきます。
これは私の感覚ですが、
for文とか使っているわけでもないのに画像が切り替わることに違和感があります。
別に何回繰り返すとかいう条件のようなプログラムはどこにも書いていません。
ただ、各ボタンのメソッドの最後で、最初に表示させたsignalImageView.imageを書き換えているだけです。
ループする条件なんかはありません。
これはなぜループしているのでしょうか?
ループと言う表現が混乱を招いているのでしょうか。
ここだけがモヤっとしています。
疲れているだけで翌日見たら「あ〜そういうことか」なんてことはよくありますが、解説できる方お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/12 14:16
退会済みユーザー
2016/09/12 16:51