There are days where Japanese people won't speak Japanese back to me. First, they switch to terrible English, and then I start speaking quickly. Then they stop understanding me. If the person talking to me would have stayed in Japanese, then we probably would have been able to communicate better. So, sometimes I ask myself what's it worth learning the local language? In Rome, Italians let me struggle with their language and listen with a smile, give me a slow and simple reply. I learned from the smile that they appreciate that I am speaking their language. However, after 15 years, I still don't know how to read Japanese people's feelings (when it comes to language).
I don't clearly know the reason for the switch to English, but I think it's tied to the Japanese concept of convenience. Everyone knows that Japan is best at transportation, services and mail, but if you live here, you can see that there are also a ton of tangible things that make life easier. Food comes in easy-to-open packages, there are vending machines everywhere, and restaurant menus have 'recommended' in big letters. By the way, Japanese people almost never make changes to their order (like "Hold the pickles!") They just completely take the food how it is. You're probably wondering what this has to deal with the English-switch.
My earlier examples show that this culture is all about doing everything for the guest or partner. It's very important in Japanese culture to give wonderful and happy feelings towards your guest, and make sure they don't lift a finger. So, of course the person trying to help me, the English-speaking foreigner, is going to do their best to speak English - it's for my benefit!*
*Update: When I translated this and ran it by my Japanese friends, they couldn't see the connection between physical convenience (vending machines, small menus) and the convenience of using the guests' language, so the content is quite different from this post.