AOJ 1104 Where's Your Robot?

問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1104

ロボットを動かしてSTOPの命令がきたら終了して最終地点を出力します。
気をつける点としては範囲外になったときの対処法です。

int main(void){
 int h,w;
 while(cin >> w >> h ,w|h){
	string str;
	int n;
	int x,y,z;
	x = 1,y = 1,z = 1;
	for(;;){ 
	 cin >> str;
	 if(str == "FORWARD"){
		cin >> n;
		if(z == 1) y += n; 
		else if(z == 2) x += n;
		else if(z == 3) y -= n;
		else if(z == 4) x -= n;
	 }
	 if(str == "BACKWARD"){
		cin >> n;
		if(z == 1) y -= n;
		else if(z == 2) x -= n;
		else if(z == 3) y += n;
		else if(z == 4) x += n;
	 }	
	 if(str == "RIGHT"){
		if(z == 4) z = 1;
		else z += 1;
	 }
	 if(str == "LEFT"){
		if(z == 1) z = 4;
		else z -= 1;
	 }
	 
	 if(x < 1) x = 1;
	 else if(x > w) x = w;
	 if(y < 1) y = 1;
	 else if(y > h) y = h;
	 if(str == "STOP"){
		cout << x <<" "<<y << endl;
		break;
	 }
	}
 }
 return 0;
}