🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Swift

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

Q&A

解決済

1回答

472閲覧

Swiftの条件式について

sunglass

総合スコア303

Swift

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

0グッド

0クリップ

投稿2021/02/22 07:50

ある値が初回だけ 0が入ります。
2回目以降は特定の文字列(例: 9012841282810 など)がランダム入ります。

1回目→ 0で実行
2回目以降→ 9012841282810などで実行
したいです。

この場合簡易的には

if test == "0"{ print("1回目") self.count = "0" } if test != "0"{ print("2回目以降です") self.count = test }

でも書けると思うのですが..
他にどんな書き方があるのか知りたいです。
guraddo whileなどをあまり使わなかったのでその辺を使った書き方が知りたいです。

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

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

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

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

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

y_waiwai

2021/02/22 07:56

問題はなんでしょうか 質問が意味不明です
mskRR

2021/02/22 09:27 編集

入ってくる値をいじれるなら、nil or not で書きそう。 で、countをString?にしそうなんだけど、だったらcountって名前が変だし、 countだったら、Int?にするかな どう使うかわかんないので想像ですけど。
guest

回答1

0

ベストアンサー

test0 か否かだけを判断しているので、

Swift

1if test == "0" { 2 print("1回目") 3} else { 4 print("2回目以降です") 5} 6 7count = test

でいいと思いますし、三項演算子を使って

Swift

1print(test == "0" ? "1回目" : "2回目以降です") 2count = test

でもいいと思います(ただし、三項演算子は共同開発では利用の是非があるので、そこの注意は必要かもしれません)。

guard 文は続くブロックの内部でreturn を使うことを前提としているので、おそらくこの文脈では使えませんし、do-whileは繰り返しなのでまた用途が異なってきます。

投稿2021/02/22 10:14

TsukubaDepot

総合スコア5086

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

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

sunglass

2021/02/22 10:23

別のやり方だと三項演算子というのがあるんですね。 問題ないとの事なので回答いただいた内容通りif文で書いてみます。 変な質問で申し訳ありませんでした。。
TsukubaDepot

2021/02/22 10:29

問題ないというよりも、「後から見て」「他の人がみて」わかりやすい書き方にすればいいのではないかと思います。 そういう意味で、三項演算子は使い方によっては混乱を招く(可読性が低くなる)という理由で利用を避ける傾向もあるようです。 「三項演算子 使わない」などで調べてみると、どういう背景でそう言う考えがあるのか分かりますので、参考にしてみるといいかと思います。
sunglass

2021/02/22 10:42

ありがとうございます!(調べてみます。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問