提供: Japanese Scratch-Wiki

2017年8月17日 (木) 12:04時点におけるMochimochiking (トーク | 投稿記録)による版 (バリエーション)

() 番目( () )の文字
カテゴリ 演算
タイプ
追加 Scratch 1.4

() 番目( () )の文字 ブロック (演算ブロック値ブロック) は、与えられた文字列の指定された位置の文字を返す。 ブロックには「文字」とあるが、いわゆる文字だけでなく、数字、記号、スペース (空白文字) なども値として返す。時間や得点を表示する場合などに便利である。

よくある使用例

文字列の途中の値を取り出したい場合に、このブロックを使用する。 よくある使用例は次のとおり:

  • 答えブロック と一緒に使用して、答えから何かを取り出す
もし <((1) 番目\((答え)\)の文字) = [z]> なら
[それ、僕も、一番好きな文字なんだ!] と (3) 秒言う
でなければ
[いいね] と (2) 秒言う
end
  • 答えのn番目の位置が数字かどうかを調べる (「数字のリスト」には、0、1、2、... 9の10個の数字を項目として入れておく)
もし <[数字のリスト v] に((n) 番目\((答え)\)の文字)が含まれる> なら
[数字] と言う
でなければ
[文字/記号] と言う
end
  • 答えの先頭が特定の文字の場合に処理を実行する
もし <((1) 番目\((答え)\)の文字) = [z]> なら
[このスクリプト v] を止める
end

バリエーション

Mod版Scratch の中には、このブロックで文字列の中から何文字分取り出すかを指定できるものがある。Scratch にも同様のブロックがほしいという声がある[1]。 その場合、次のようなブロックになるだろう。 (() 〜 () 番目([])::operators)

ただし、このブロックは次のコードで実現できる:

[返す値 v] を [] にする
[カウンター v] を (最初の文字) にする
<(カウンター) = ((最後の文字) + (1))> まで繰り返す
[返す値 v] を ((返す値) と ((カウンター) 番目\((文字列)\)::operators)) にする
[カウンター v] を (1) ずつ変える
end

関連項目

参照

  1. https://scratch.mit.edu/discuss/topic/47895/