За последние 24 часа нас посетили 19372 программиста и 1655 роботов. Сейчас ищут 1136 программистов ...

Проблемы со сложением функций

Тема в разделе "JavaScript и AJAX", создана пользователем hoomb, 26 янв 2008.

  1. hoomb

    hoomb Активный пользователь

    С нами с:
    26 янв 2008
    Сообщения:
    1
    Симпатии:
    0
    Пытаюсь сделать следующую вещь:
    Скрипт вырабатывает три случайных числа - выводит на экран в виде картинок(изображения костей)
    Одна из функций выводит на экран сумму трех случайных чисел.
    Сразу предупреждаю, я только учусь. Код числа генерирует нормальлно, но не складывает их. Где ошибка?
    [js]function getrandom1() {

    var min_random = 1;
    var max_random = 6;

    max_random++;

    var range = max_random - min_random;
    var n=Math.floor(Math.random()*range) + min_random;
    return n;
    }

    document.write(getrandom1())

    function getrandom2() {

    var min_random = 1;
    var max_random = 6;

    max_random++;

    var range = max_random - min_random;
    var n=Math.floor(Math.random()*range) + min_random;

    return n;
    }
    document.write(getrandom2())

    function getrandom3() {

    var min_random = 1;
    var max_random = 6;

    max_random++;

    var range = max_random - min_random;
    var n=Math.floor(Math.random()*range) + min_random;

    return n;
    }
    document.write(getrandom3())

    var x = document.write(getrandom1());
    var y = document.write(getrandom1());

    function calculation()
    {



    var x;
    var y;

    var result= x + y;

    return result;
    } document.write(calculation()) [/js][/js]
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Получается вот что:
    1) Вы выводите информацию document.write();
    2) Метод (функция) write не возвращает коду никаких аргументов при выполнении (ни true в случае удачи, ни false в случае ошибки). Получается undefined (неопределенность).
    3) Вы присваиваете undefined переменным х и y. Отсюда все и ошибка.

    Вообще, мне не очень понятно, зачем вы создаете три функции с одинаковым кодом.
    Предлагаю ваш вариант, только переделанный.
    [js]
    function getrandom() {
    var min_random = 1;
    var max_random = 6;
    max_random++;
    var range = max_random - min_random;
    var n=Math.floor(Math.random()*range) + min_random;
    document.write(n);
    return n;
    }

    //Теперь вызываем трижды одну и ту же функцию, чтобы создать три разных числа
    //Но сначала создаем массив, чтобы туда поместить эти три числа
    var numbers = new Array();
    for (i=0;i<=2;i++) {
    numbers = getrandom();
    }
    //Объявляем функцию и не забываем, что она принимает массив (название может быть отличное от название массива)
    function calculation(numbers) {
    var result= numbers[0] + numbers[1] + numbers[2];
    return result;
    }
    //Вызываем функцию сложения, передавая ей массив и печатаем
    document.write(calculation(numbers));
    [/js]