TECH EXPERT 14日目

TECH::EXPERT

基礎コースの試験を受けました。
特に問題なく終了。cssに関しては知識がないので少し失点しましたが。
とりあえず応用コースに入れるみたいです。
問題は非常にぬるく作ってあったのでここで落とすつもりはなさそう。
てかTECHで2週間以内に退会されたら払い戻しになるので損ですもんね。

カリキュラム通りのオンタイムでの進行ペースに留めてますが、さすがに100時間以上ディープにやったので2週間前と違って心にゆとりがあります。取り組み方やプログラミングのコツもある程度掴めました。応用以降はそれほど苦戦する要素もなさそう。どうせ使うメソッドのパターンが増えるだけだ。

やったことメモ

再帰関数

def sum(num)
  if num==0 
    return 0
  else
    return num+sum(num-1)
  end
end

sai(3)

メソッドをネストして行う場合に一括で処理を抜ける方法はあるのか?
再帰関数の場合は最初から終わるように設計しているが、メソッドをループさせるような処理の場合、1つの解に当たった段階で全てのループを抜けるにはどうしたらよいか?

キーワード:多重ループ、再帰関数、goto、catch ~ throw

Kernel.#catch (Ruby 3.3 リファレンスマニュアル)
]との組み合わせで大域脱出を行います。catchはブロックを実行します。

catch ~ throw

リファレンスマニュアルから抜粋

result = catch do |tag|
  for i in 1..2
    for j in 1..2
      for k in 1..2
        throw tag, k
      end
    end
  end
end

p result #=> 1

catchで指定したタグ をthrowで受けた時に処理を一気に抜ける。

CSS

height: calc(100% - 180px);

コメント