提供: Japanese Scratch-Wiki

2019年11月9日 (土) 05:45時点におけるApple502j (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

このきじは ひらがなのページがありません。ごめんなさい。
() の () 番目に () を挿入する
[リスト v] の (1 v) 番目に [ほげ] を挿入する::list
カテゴリ 変数
タイプ スタック
追加 Scratch 1.3

() の () 番目に () を挿入するブロックリストブロックスタックブロック)は、指定したテキストを値に持つ要素を、指定したリストの指定した場所に挿入するブロックである。指定した位置とそれより後ろにあった要素の位置は、新しく挿入された要素の後ろにずれる。挿入位置として「最後」が選択すると、() を () に追加するブロック同様、リストの最後に要素が追加される。

使用例

「イヌ」をリストの3番目に追加した例。元々あった要素の番号が1つずつずれる

何らかの意味のある順番で並んでいるリストに新しい要素を追加したいときは、() を () に追加するブロックでは規則性が壊れてしまうので、このブロックを使って必要な場所に要素を追加する。

() の () 番目に () を挿入するブロックのよくある使用例は次のとおり:

  • リストの特定の位置に要素を追加する
[どこに挿入する?] と聞いて待つ
[好きな食べもの v] の (答え) 番目に [アップルパイ] を挿入する::list
  • 文字をリストとして保存するワープロソフトプロジェクトで、文章の途中に文字を追加する場合
  • () を () に追加するブロックを使用してもよいが、追加位置を明確にしておきたい場合

別のブロックによる表現

このブロックの動作を再現するには、数多くの手順が必要になる。現在、Scratchではパラメータ(引数)としてリストを渡すことはできないが、これが可能であれば、次のスクリプトによってこのブロックが代用できることになる。

定義 (テキスト) を (インデックス) 番目に挿入する((リスト))//「画面を再描画せずに実行する」オプションをオンにしておく
[作業用リスト v] の (すべて v) 番目を削除する::list //作業用リストは要素を一時的にコピーするためのリスト
[i v] を (0) にする
((リスト) の長さ) 回繰り返す//コピーする
[i v] を (1) ずつ変える
((i) 番目((リスト))::variable) を [作業用リスト v] に追加する
end
(リスト) の (すべて v) 番目を削除する::list
[i v] を (0) にする
([作業用リスト v] の長さ) 回繰り返す
[i v] を (1) ずつ変える
もし <(i) = (インデックス)> なら
(テキスト) を (リスト::variable) に追加する
end
((i) 番目([作業用リスト v])::variable) を (リスト) に追加する
end

関連項目