質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

847閲覧

else if で条件を分けているはずなのに実装できていない

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/08/31 06:08

編集2018/09/01 01:20

申し訳ございません。 前の前の質問では実装がいらなくなったと言いつつ実装が必要となってしまいましたので質問させて頂きます。
今の状況といたしましては画面遷移はうまく出来ています。しかし、else if で条件を分けているのですが変わらず、breakpointでやろうとすると動作が停止しました。
こちらのコードを見てください。

ViewController

1import UIKit 2 3class ViewController: UIViewController,UITextFieldDelegate { 4 5 6 7 @IBOutlet weak var yourlavel: UILabel! 8 @IBOutlet weak var textfield: UITextField! 9 10 11 12 13 // 選択肢 14 var Datalist:Int = 0 15 var todouhuList:Int = 0 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 print(Datalist) 19 20 21 22 // Do any additional setup after loading the view, typically from a nib. 23 yourlavel.text = "" 24 self.imageView.image = image 25 } 26 27 var image: UIImage? 28 var arigatou = "ありがとう" 29 30 31 @IBAction func display(_ sender: Any) { 32 33 self.yourlavel.text = self.textfield.text 34 35 if arigatou == self.textfield.text{ 36 yourlavel.text = String("どういたしまして") 37 } else if douitasimasite == self.textfield.text { 38 yourlavel.text = String("いえいえ") 39 } 40 41 42 } 43 44 } 45

このようになっています。インデックス0番を選択した時にありがとうと打つとどういたしましてと、なりまして1番を選んだ時にありがとうと打つとなんもなんもとなります。しかし、インデックス番号2番を選択した時にありがとうと打つと本当はなもなもとしたいはずが0番を選択した時と同じようにどういたしましてとなってしまします。else if todouhuList == 2の部分でbreakpointをやると動作は停止するのですが変わりませんでした。どうすれば2番を選択し、ありがとうと打った際になもなもと表示されるでしょうか。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/08/31 06:10 編集

コードのインデントがおかしいので修正してもらえますか?
退会済みユーザー

退会済みユーザー

2018/08/31 06:13

fuzzbal様 了解しました。
fuzzball

2018/08/31 06:29

なぜコードに全角スペースが混ざっているのでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/31 06:31

fuzzball様 xcodeの Ctrl + i でやったのですが、、
fuzzball

2018/08/31 06:35

その前から混ざっていたのでしょう。(ここからXcodeにコピペしたとか?)全角スペース混ざってるとエラーになりませんか?
退会済みユーザー

退会済みユーザー

2018/08/31 06:43

fuzzball様 ビルド前のエラーは出ていません。インデックス番号2番を選んだ時に0番を選んだ時と同じ条件になってしまうだけです。
yukihisa

2018/08/31 06:51 編集

できないなら手動でインデント合わせてみたらどうでしょう? 「インデントがおかしいよ」と指摘されているのですから。 一度インデントを全て消去して、きちんと順番に付けてみるのが自分で理解する近道だと思います。
fuzzball

2018/08/31 06:54 編集

質問内のコードをXcodeにコピペしてみて下さい、って話なのですが。逆に言うと、Xcodeでエラーが出ていないのなら、そのコードをそのままこっちにコピペして下さい、ってことです。
退会済みユーザー

退会済みユーザー

2018/08/31 07:01

fuzzball様 質問のコードをコピペして見たところ確かにエラーが出てしまいました。しかし、xcodeからそのままコードをコピーしているのになぜインデントが変わってしますのでしょうかね、、
fuzzball

2018/08/31 07:07

コピーするときに「開始行の行頭」からコピー出来てないんじゃないですか?(何回かに分けてコピーしているなら、そのたびに開始行のインデントがおかしくなる)
退会済みユーザー

退会済みユーザー

2018/08/31 07:19

fuzzball様 修正しました。これでどうでしょうか?
yukihisa

2018/08/31 07:22

その時点でインデントがおかしい(=閉じカッコが足りてない)ことに気づきましょう。==1の処理の中に==2の条件があるから絶対に通らないですよ
fuzzball

2018/08/31 07:24

コードは大丈夫ぽいです。
退会済みユーザー

退会済みユーザー

2018/08/31 07:44

fuzzball様 了解しました
guest

回答1

0

ベストアンサー

インデントまだおかしいですよ。
Xcodeなら、コードを選択してCtrl+iインデントを付け直してくれます。

インデントを修正できたら、

swift

1else if todouhuList == 2 {

インデントがおかしいことに気が付くことでしょう。

投稿2018/08/31 06:20

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/31 06:24

fuzzball様 申し訳ございません。そういう機能があったのですね。知らなかったです。教えていただきありがとうございます。
退会済みユーザー

退会済みユーザー

2018/08/31 08:46

fuzzball様 インデントは直ったのですがまだ2番を選択し、ありがとうと打った際にどういたしましてと出てきてしまうのですが、、
fuzzball

2018/08/31 08:54

いやいや、インデントの違いでプログラムの動作は変わりませんから。 yukihisaさんも書かれていますが、インデントを正しくすれば、「else if todouhuList == 2 {」がおかしいことに気付くと思ったのですが、これで気付かないのであれば、if 〜else if の理解不足ですね。 「else if todouhuList == 2 {」の else が、どのif文に対する else なのか考えて下さい。
退会済みユーザー

退会済みユーザー

2018/08/31 12:42

fuzzball様 本当でした。まだまだ理解不足でしたね。インデントについてはこれからも綺麗にしていきたいと思います。これからもよろしくお願い申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問