Whew. That was a lot of obscurity to wade through without a single comment for guidance.
That wouldn't be so bad if this was factored out as a method with a clue in the name like 

    private getOpTypeAsString() {

or

    private static opTypeAsString(int opType) {

And, quite apart from performance considerations, a "break;" when you've found the matching type gives an excellent hint that this was the whole point of the loop.

Alternatively, the code would be much more readable if this loop were refactored into a static block that built a static int-to-OpType map, so there could just be a map.get here.