Let's do the Wave!
Python 3, 32 bytes
lambda s,n:s+s[s[0]==s[-1]:]*~-n
Concatenates n
copies of the string, removing the first character from all copies but the first if the first character matches the last one.
05AB1E, 13 bytes
Uses CP-1252 encoding.
D¬U¤XQi¦}I<×J
Try it online!
Explanation
-___-
and 3
used as input for example.
D # duplicate input string
# STACK: "-___-", "-___-"
¬U¤X # push copies of the first and last element of the string
# STACK: "-___-", "-___-", "-", "-"
Q # compare for equality
# STACK: "-___-", "-___-", 1
i¦} # if true, remove the first char of the copy of the input string
# STACK: "-___-", "___-"
I< # push input number and decrease by 1
# STACK: "-___-", "___-", 2
× # repeat the top string this many times
# STACK: "-___-", "___-___-"
J # join with input string
# STACK: "-___-___-___-"
# implicitly output
JavaScript (ES6), 47 bytes
f=
(s,n)=>s+s.slice(s[0]==s.slice(-1)).repeat(n-1)
;
<div oninput=o.textContent=n.value&&f(s.value,n.value)><input id=s><input id=n type=number min=1><div id=o>