The general shape of a C block.

A C block is a block that is shaped like a "C", so other blocks can fit inside it. These blocks perform the conditions and loops.

Shape

C blocks have a "mouth" (it looks like the letter "C", hence the name) — the blocks that will be played with the C block go in these mouths. All but one of the C blocks consist of one mouth — the other, If () Then, Else, consists of two mouths. When any of the other C blocks are dragged over a stack of blocks — if the C is empty — its mouth extends to wrap around them.

repeat (10)
repeat until <(loudness) > [30]>
glide (1) secs to x: (10) y: (0)
wait (1) secs
go to x: (0) y: (0)
end
play sound [meow v] until done
end

In 1.2.1 and earlier, C-block scripts could only be built one block at a time.

Blocks

In Scratch 2.0, there are five C blocks, and they can all be found in the Control category.

The Forever If () block.

In Scratch 1.4 and earlier, there was also a Forever If () block. It was replaced with its workaround.

forever
if <> then

Uses

As C blocks are for checks and loops, they are used almost everywhere. Some uses include:

  • Things that must go on forever
when gf clicked
forever
turn cw (15) degrees
  • Checking a condition
when [space v] key pressed
if <(loudness) > [30]> then
stop [all v]
end
  • Repeating an animation a certain amount of times
when gf clicked
repeat (200)
turn ccw (36) degrees
change [color v] effect by (1)
end

Here is an example for both checks and looping:

when I receive [Decrease health v]
change [Health v] by (-1)
if <(health) = [0]> then
repeat (8)
change [color v] effect by (25)
end
end
  • Starting/Stopping
when gf clicked
if<key [space v] pressed?> then
stop [all v]
else
end

There is a check (the If () Then block is checking if the variable Health has a value of 0), and inside the check is a repeat loop (with the Repeat () block). Note how C blocks can be placed inside other C blocks.