What's the most elegant way to cut shapes out of a mesh? I'm trying to cut shapes out of a mesh, but I'm having trouble doing it, or at least doing it properly. I'm currently trying to model this flashlight: 

The part I'm specifically having trouble with is the part near the green light, where there are cutouts from the cylinder. I'm not sure how to do those properly. The thing that first comes to mind is creating another object, using an array to copy it around the cylinder, and then using a boolean modifier in difference mode. This works, but it creates an ugly mesh, and it also doesn't seem very flexible, for when you need to do more complex stuff, and working on a mesh that indirectly affects the mesh you're actually trying to affect seems a bit weird. I've also tried doing things like knife project, but it's geometry isn't any better.

So, basically, what I'm asking is: Is there any way for me to do this while keeping my geometry clean?
Yes your initial array method will work. Here is the model of a circle. I have extruded it into a cylinder and delete the faces I don't need and apply an array modifier to get the below mesh. I have intentionally left out the last array object. With the mid-edge of the original mesh selected ...



Hit CtrlB to bevel the edge and you should achieve this...



Next with K I have added a cut using knife tool between the bevel like this ...



Now I will extrude downwards with the E to make a depth for the groove...



Before finalising the cut I will add a subdiv modifier. And the modifier stack looks like below. The object offset is an empty with a 22.5 degree rotation to create the array copies, rotating around the mesh's origin point.



Finalising those loop cuts in 4 locations shown here.

And now this is the mesh I have. From here on out you can either bake the normals of the highres mesh onto a low res mesh. Or clean up the highres mesh so that it's not too high a poly for efficiency sake. Hope it helps




And here's the Blend file for your reference.