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

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

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

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

解決済

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

pecchan
pecchan

総合スコア506

Ruby

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

1回答

0評価

0クリップ

131閲覧

投稿2022/05/23 00:33

編集2022/05/23 16:24

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

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

ruby

ary = [] ary << 1 && false p 1 && false # falseが出力される p ary[0] # falseが出力されると期待したが、1が出力される p ary # [1]が出力される

最初の

1 && false

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

ary[0]

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

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

ruby

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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有難う御座います!! まったく理解してませんでした!

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

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