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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

328閲覧

配列の要素に値を入れる前後で、出力結果が変わる理由が分かりません

pecchan

総合スコア555

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2022/05/23 00:33

編集2022/05/23 16:24

Ruby勉強中の者です。
nilとfalseだけがfalse、あとは全てtrueになるのは理解しました。

ですが、なぜ下の結果になるのか分からず悩んでいます。

ruby

1ary = [] 2ary << 1 && false 3 4p 1 && false 5# falseが出力される 6 7p ary[0] 8# falseが出力されると期待したが、1が出力される 9 10p ary 11# [1]が出力される 12 13

最初の

1 && false

の出力結果は、falseです。
であれば、
次の

ary[0]

も、同じくfalseが出力されると期待したのですが、なぜここは1になるのでしょうか?

●追記します
状況について補足
Ruby Silver試験の過去問を勉強してました。
以下のような問題があり、1つずつ実行して結果を確認してたところです。

ruby

1問題29. 以下のコードを実行したときの出力として適切な物を1つ選択してください。 2ary = [] 3ary << 1 && false 4true || ary << 2 5false && ary << 3 6false || ary << 4 7p ary 8 9A. [1, 4] 10B. [1, 2, 3, 4] 11C. [1] 12D. [1, 2, 3] 13

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

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

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

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

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

melian

2022/05/23 00:41

状況がよく判りませんが、(ary << 1) && false と ary << (1 && false) の違いについての話なのでしょうか?
pecchan

2022/05/23 00:52

状況といいますか背景を追記致しました。 1つずつ実行して確認してた所、予想と違って分からなくなっていました。
pecchan

2022/05/23 07:24

URL有難う御座います!! まったく理解してませんでした!
guest

回答1

0

ベストアンサー

最初の1 && falseの出力結果は、falseです。

ary << 1 && falseの箇所では、そのような評価はそもそもなされません。演算子の優先順位の関係上、(ary << 1) && falseと解釈されます。

投稿2022/05/23 00:52

編集2022/05/23 01:17
maisumakun

総合スコア145121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問