Alternating Triangles

Husk, 12 bytes

↔↑ṁe"|"¡Θ" /

Try it online!

Builds the infinite triangle upside-down, then takes the required number of lines and reverses them before printing.


↔↑ṁe"|"¡Θ" /
       ¡        Repeat and accumulate results:
        Θ          prepend a space
         " /       starting from the string " /"
                   (this will create all the lines of the slanted side)
  ṁ             For each line:
   e"|"            put it in a list with a "|" line
  ṁ             and merge all these lists together
 ↑              Take the number of lines required by the input
↔               Reverse the result

Python 2, 45 bytes

def f(n):print n%2*'|'or n/2%n*' '+'/';f(n-1)

Try it online!

A function that prints, terminating with error. The %n in n/2%n is just to give an error when n falls to 0, but is harmless otherwise.

As a program

50 bytes

while n:print n%2*'|'or n/2*' '+'/';n-=1

Try it online!

Haskell, 48 bytes

unlines.reverse.(`take`f" /")
f c="|":c:f(' ':c)

Try it online!

f" /" generates an infinite (reversed) approximate triangle, the first line is mostly formatting.