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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

Swift

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

Q&A

2回答

1293閲覧

swiftのwhile文でnot演算子に複数条件を設けたい

dandadan

総合スコア14

Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

Swift

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

0グッド

0クリップ

投稿2022/01/06 09:37

編集2022/01/12 10:55

イメージ説明while文で!を使って条件設定しているのですが

while !A {}
と書けば Aではない間繰り返す となると思いますが

while !A && B (エラーになります)
のように、AかつBを満たさない間繰り返す という表現をしたいです。
エラーにならずに上記の条件を書きたい場合、どのように書けばいいでしょうか。

イメージとしては
while !{A && B}  (こんな書き方はありませんが…)
といった感じで、AでもBでもないということを書きたいです

追記
画像を追加しました
while!(A||B){}
の形では画像のようなエラーになりました。

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

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

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

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

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

takasima20

2022/01/06 10:51

その否定は両方にかかってるの?
dandadan

2022/01/06 10:54

追記させていただきました! 宜しくお願いします
takasima20

2022/01/06 11:08

while !(A||B) {} みたいな書き方はできるのかな?
dandadan

2022/01/06 11:28

だめみたいです… 画像を追加しました。 宜しくお願い致します。
wsb

2022/01/06 14:05

isBlocked, isBlockedLeft, isBlockedRight の型を提示してもらえますか? すべてBool型ならいずれの書き方もできるはずです
guest

回答2

0

エラーメッセージに書かれてある "() -> Bool"型の値 というのは、引数なしでBool型の値を返すメソッドが指定されていることを表していて、この条件式にBool型の変数ではなくメソッド名を指定しているためエラーになっているように見えます。

isBlockedisBlockedLeftisBlockedRight が変数(プロパティ)になっているか確認してみてください。

もし、これらがBool型の値を返すメソッドとして作ることを意図していて、そのメソッドを呼び出した結果を条件式に使用したいのであれば、
while !(isBlocked() || isBlockedLeft() || isBlockedRight()) {
のようにして、 () をつけてメソッドを呼び出す形にすればいいです。

投稿2022/01/06 14:10

TakeOne

総合スコア6299

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

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

0

これでいけそう?

swift

1while !a && !b { 2 //処理 3}

投稿2022/01/06 11:54

takasima20

総合スコア7458

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問