سلام کد یک برنامه جالبی و براتون گذاشتم که با حلقه While و دستورات شرطی یک ربات و بر اساس محور مختصات x و y می تواند مشخص بکنیم که کجا قرار بگیرد و بصورت پیش فرض مختصات (0 و 0) می باشد. 

کد برنامه حرکت ربات بر محور مختصات دکارتی (x و y) در جاوا:

package com.company;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
	// write your code here
        int x = 0, y = 0, number = 0; // تعریف نوع داده از اعداد صحیح
        String data, text; // تعریف نوع داده از رشته
        System.out.println ( "Robot Can Go To Up, Down, Right And Left" );
        System.out.println ( "If You Like Exit Enter Exit" );
        System.out.println ( "Else Input Example: Up-5 Or Down-5 Or Right-5 Or Left-5" );
        while (true){ // شروع حلفه تا بی نهایت
            Scanner input = new Scanner ( System.in );
            data = input.next (); //دریافت رشته از کاربر
            String[] dataSplit = data.split ( "-" ); //جداکردن متن و عدد وارد شده با علامت -
            text = dataSplit[0].toUpperCase (); // بزرگ کردن حروف مثلا up وارد شده به UP تغیر می کند
            number = Integer.parseInt(dataSplit[1]); // تبدیل به نوع صحیح عدد وارد شده در خانه 1 آرایه رشته
            if(text.equals ( "UP" )) { // شروع شرط
                y += number; // y =  y + number
                System.out.println ( x + "," + y );
            } //  پایان شرط
            else if (text.equals ( "DOWN" )) { //شروع شرط
                y -= number; // y =  y - number
                System.out.println ( x + "," + y );
            }  //  پایان شرط
            else if (text.equals ( "RIGHT" )) { //شروع شرط
                x += number; // x =  x + number
                System.out.println ( x + "," + y );
            }  //  پایان شرط
            else if (text.equals ( "LEFT" )) { //شروع شرط
                x -= number; // x =  x - number
                System.out.println ( x + "," + y );
            }  //  پایان شرط
            else if (text.equals ( "EXIT" )) { //شروع شرط
                break;
            }  //  پایان شرط
        }
    }
}

خروجی برنامه حرکت ربات بر محور مختصات دکارتی(x و y)  در جاوا:

Robot Can Go To Up, Down, Right And Left
If You Like Exit Enter Exit
Else Input Example: Up-5 Or Down-5 Or Right-5 Or Left-5
up-10
0,10
right-5
5,10
down-2
5,8
left-3
2,8

مثال: خب ربات و در مرحله اول مختصات (10,4) ابتدا قرار داده و بعد در مرحله دوم در مختصات (10,20)  و در مرحله سوم در محتصات (20,10) و در مرحله چهارم در مختصات (20,5) قرار بکیرد.

خب دستورات زیر و به ترتیب وارد میکنم.

1. up-4 //output (0,4)

2. right-10 //output (10,4)

3. up-16 //output (10,20)

4. right-10 //output (20,20)

5. down-10 //output (20,10)

6. left-5 //output (20,5)

7. exit // exit of while

توضیحات برنامه حرکت ربات بر محور مختصات x و y در جاوا:

1. خب ما برای این برنامه یک حلقه بی نهایت نیاز داریم تا بتوانیم برای بی نهایت بار دستور بالا، پائین، راست و چپ در مختصات و از کاربر بگیریم. پس یک حلقه همیشه true تعریف می کنیم.

2.رشته data و از کاربر دریافت می کنیم.

3. dataSplit یک آرایه از نوع رشته می باشد که با استفاده از تابع Split رشته وارد شده و با علامت - از هم جدا می کند و در خانه 0 و 1 آرایه قرار می دهد. 

مثال: کاربر up-10 و وارد می کند و برنامه با استفاده از تابع Split و علامت - جدا سازی صورت می گیرد و در dataSplit[0] کلمه up قرار می گیرد و در dataSplit[1] عدد 10 قرار می گیرد.

4. با استفاده از تابع toUpperCase کلمه وارد شده و مثلا: up به حروف بزرگ تبدیل می کنیم که می شود UP

نکته: شاید کاربر حروف و بصورت کوچیک و بزرگ وارد بکند و ما تمامی حروف و با این تابع به بزرگ تبدیل می کنیم.

5.عدد ما که در dataSplit[1] می باشد بصورت رشته می باشد که با استفاده از تابع Integer.parseInt به int (عدد صحیح) تبدیل می کنیم.

6.خب ربات ما به چهار جهت طبق یک محور می تواند حرکت بکند به بالا، پائین، راست و چپ پس نیاز مند به چهار شرط داریم که بررسی بکنیم ربات به کدام سمت باید برود. 

7.برای اینکه یک رشته و در جاوا بررسی بکنیم که مساوی بر رشته ای که موردنظر داریم است یا نه باید از تابع equals استفاده بکنیم. اگر از == استفاده بکنیم برنامه بدرستی کار نمی کند.

8.خب موقعیت ربات ما در محور بصورت مختصات پیش فرض (0,0) می باشد. و دو متغیر x و y بصورت int تعریف کرده ایم که مساوی صفر می باشد.

9. در شرط اول بررسی می کنیم اگر کاربر UP و وارد کرده بود ربات باید در محور مختصات Y به بالا برود پس عدد وارد شده و در y که قبلا صفر بوده است یا در خط 10 مقدار آن تغییر کرده است جمع کرده و در خود متغیر y قرار می دهیم.

10.در شرط دوم بررسی می کنیم اگر کاربر DOWN و وارد کرده بود ربات باید در محور مختصات Y به پائین برود پس عدد وارد شده و در y که بصورت پیش فرض صفر بوده است یا در خط 8 مقدار آن تغییر کرده است تفریق کرده و در خود متغیر y قرار می دهیم.

11.در شرط سوم بررسی می کنیم اگر کاربر RIGHT و وارد کرده بود ربات باید در محور مختصات X به راست برود پس عدد وارد شده و در x که بصورت پیش فرض صفر بوده است یا در خط 12 مقدار آن تغییر کرده است جمع کرده و در خود متغیر x قرار می دهیم.

12.در شرط چهارم بررسی می کنیم اگر کاربر Left و وارد کرده بود ربات باید در محور مختصات X به چپ برود پس عدد وارد شده و در x که بصورت پیش فرض صفر بوده است یا در خط 11 مقدار آن تغییر کرده است تفریق کرده و در خود متغیر x قرار می دهیم.

13. یک شرط خروج از حلقه می گذاریم اگر کاربر EXIT و وارد کند از حلقه خارج شود

14. پایان