switch java דחוף למבחן :-)

2010-02-28 19:21:54
˄
0
˅

אני אשמח אם תוכלו לעזור לי לקראת המבחן ...

השאלה היא :

כתוב תוכנית אשר מקבלת מהמשתמש 2 ספרות במילים , אשר מדפיסה את המספר הגדול מהשניים במילים . כלומר אם הזנתי one ו-tow אז התוכנית אומרת ש-tow גדול מ-one

האם חייבים להשתמש ב-switch? ישנה עוד דרך?

אני אודה לכם מאוד אם תוכלו לכתוב לי את הפיתרון המתאים לשאלה זאת.

תודה רבה רבה :-)

1 תשובה

2010-03-01 10:56:20
˄
0
˅

ניתן לעשות זאת גם ללא פקודת switch. לדוגמה, ניתן להשתמש במערך על מנת להמיר את המחרוזת למספר-שלם. הנה הפונקציה getNumber המקבלת מחרוזת ומחזירה את המספר הכתוב בה.

public static int getNumber(String str)
{
    String[] numbers = new String[] {"zero","one","two","three","four","five","six","seven","eight","nine","ten"};

    for (int i = 0; i < numbers.length; i++)
    {
        if (str.equals(numbers[i]))
        {
            return i;
        }
    }

    return -1;
 }

ניתן להשתמש בה כך על מנת לפתור את התרגיל: (ויתרתי על הקוד שקולט את המספרים מהמשתמש, יש להוסיף אותו)

public static void main(String[] args)
{
    //get two numbers from the user.
    //I will leave this task for you. I hardcoded the numbers here
    String firstNumber = "two";
    String secondNumber = "eight";

    //convert strings to numbers
    int num1 = getNumber(firstNumber);
    int num2 = getNumber(secondNumber);
    if (num1 < 0 || num2 < 0)
    {
        // user did not enter a number from one to ten, exit
        System.out.println("invalid number(s)");
        return;
    }

    //check who is bigger
    if (num1 > num2)
    {
        System.out.println(firstNumber);
    }
    else if (num2 > num1)
    {
        System.out.println(secondNumber);
    }
    else
    {
        System.out.println("Numbers are equal!");
    }

}

זהו אתר שאלות ותשובות למתכנתים. כל אחד יכול לשאול שאלה , כל אחד יכול לענות על שאלה, כל אחד יכול להגיב לתשובות.

דוא"ל

סיסמה

או הצטרפות