I always add more yarn wherever I run out. My method is to loosely tie the ends leaving some tails, knit a few rows then go back to the knot and place it so it's on a purl bump on the WS. Then I tighten it up and weave in the ends and that way it doesn't move. Other ways of adding yarn are the Russian join which has a video on the Tips page, I think and you can do that in the middle of a row too. There's a couple other methods of joining on that page too.
I usually hold the old yarn and the new yarn together and knit a few stitches like that. Then I drop the old yarn and continue with the new. When I go back and look at this later, I can't even tell where the join is. I have to look at the WS to find the tail (which I, of course, weave in at the end of the project).
By the way, there's not necessarily a right way or a wrong way to do things in knitting (after all, there are no knitting police). It's personal preference, so if your way works and you like it, then you're good to go. However, if you don't like it, there are several other options--some presented in this thread, and others you can find by doing a general search for "joining new yarn in knitting."
The Following User Says Thank You to Antares For This Useful Post:
I never liked the Russian join or ones like it because they seem to come apart for me. Then I'm stuck with this dinky little end, and how do you fix that? Knitting the old in with the new leaves an unsightly lump for me. I only add new yarn at the beginning of a row. I'll just drop the old and begin knitting with the new. I have to pull that first stitch on the next row to tighten it. I'll do this for one or two rows, then leave it alone. I grab the two ends, loosely tie them together with a knot at the beginning of the row. Then I come back at the end of the project, untie the knots and weave the ends in with a tapestry needle.