提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。編集者向け:作成する

この記事では、カスタムブロックを使って、特定の文字列に指定した文字のいずれかが含まれているかどうか調べる方法を説明する。

スクリプト例

次のスクリプトでは、「調べる文字」として与えられた文字のいずれかが、「もとの文字列」に含まれているかどうかを調べることができる(調べる文字を「abc」とすると、a、b、cのいずれかが含まれていれば結果がtrueになる)。

このスクリプトでは、次の変数を使用する。

  • "結果" は、指定した文字が含まれていればtrue、含まれていなければfalseを返す
  • "i" は、文字を1つずつずらしていくのに使用する変数 (イテレーター)
  • "見つかった数" は、もとの文字列の中で候補となる文字が見つかった回数をカウントする変数
  • "文字リスト" は、調べる文字を1文字ずつリストにしたもの。1文字ずつバラバラにすることによって、Scratchにもともと含まれる() に () が含まれるブロックが使用できるので、便利である。
Warning メモ: このスクリプトは指定した文字が含まれているかどうかを、指定の順番と関係なく判断する。指定したとおりの順番で含まれているかどうかを調べるときは、文字列に指定文字列が含まれているか調べるを参照してほしい。
  定義 (もとの文字列) に (調べる文字) が含まれるか
  [結果 v] を [false] にする
  [文字リスト v] のすべてを削除する::list
  [i v] を (1) にする
  ((調べる文字) の長さ) 回繰り返す  // 調べる文字を1文字ずつリストに入れる
    ((調べる文字)の(i)番目の文字::operators) を [文字リスト v] に追加する
    [i v] を (1) ずつ変える
  end
  [i v] を (1) にする
  [見つかった数 v] を (0) にする
  ((もとの文字列) の長さ) 回繰り返す 
    もし <[文字リスト v] に ((もとの文字列)の(i)番目の文字::operators) が含まれる> なら 
      [見つかった数 v] を (1) ずつ変える
    end
    [i v] を (1) ずつ変える
  end
  もし <(見つかった数) > [0]> なら 
    [結果 v] を [true] にする
  end

関連項目