In popular imperative languages, switch statements generally \"fall through\" to the next level once a case statement has been matched.
Example:
int
Using ;& is not very portable, as it requires bash (not ash, dash, or any other minimal sh) and it requires at least bash 4.0 or newer (not available on all systems, e.g. macOS 10.14.6 still only offers bash 3.2.57).
A work around that I consider much nicer to read than a lot of if's is loop and modify the case var:
#!/bin/sh
A=2
A_BAK=$A
while [ -n "$A" ]; do
case $A in
1)
echo "QUICK"
A=2
;;
2)
echo "BROWN"
A=3
;;
3)
echo "FOX"
A=4
;;
4)
echo "JUMPED"
A=""
;;
esac
done
A=$A_BAK