Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Некорректная работа ф-ции (https://javascript.ru/forum/events/8830-nekorrektnaya-rabota-f-cii.html)

Dimonya 15.04.2010 11:46

Некорректная работа ф-ции
 
Есть функция:
function Str()
{
  var count;
  var count1;
  var sum;
  count=rand(1,6);
  count1=rand(1,6);
  sum=count+count1;
        alert("MyStr до начал работы ф-ции="+MyStr);
      switch(sum)
      {
        case 2 : MyStr=22;
        case 3 : MyStr=20;
        case 4 : MyStr=16;
        case 5 : MyStr=18;
        case 6 : MyStr=20;
        case 7 : MyStr=20;
        case 8 : MyStr=16;
        case 9 : MyStr=24;
        case 10: MyStr=22;
        case 11: MyStr=18;
        case 12: MyStr=20;
      }
      return MyStr;
      alert("Первый кубик=" +count+ "/nВторой кубик="+ count1+ "MyStr после switch ="+MyStr );

}

alertы вставлены для проверки.
При ее запуске переменная MyStr принимает значение равное 20,после чего не изменяется в зависимости от переменной sum...
При ее вызове с html-страницы
Код:

<form action="null">
<input type="button" onclick="Str()" value="Сила"/>
</form>

<SCRIPT language="javascript" type="text/javascript">
 document.writeln("<p>"+"Сила: "+ MyStr+"<BR />");
alert("MyStr="+MyStr);
</SCRIPT>

Последний alert выдает MyStr=undefined.
Помогите пожалуйста разобраться.

Kolyaj 15.04.2010 11:55

Забыли break внутри каждого case.

Цитата:

Сообщение от Dimonya
Последний alert выдает MyStr=undefined.

А где вы её определяете?

Dimonya 15.04.2010 12:37

MyStr определяется как глобальная переменная.

Skipp 15.04.2010 12:43

Скорее всего ты просто не там написал переменную MyStr, она не успевает принять какое-нибудь значение, до вывода alert'ом.

Dimonya 15.04.2010 13:17

Переменная MyStr определена в самом начале файла.
После вставки break функция начала работать нормально, но с ее интеграцией в код страницы все те же проблемы.
Хотя переменная MyStr определена как глобальная,программа не видит ее вне функции...

Kolyaj 15.04.2010 13:19

Вы же не показываете нам ни интеграцию, ни как определена MyStr.

Dimonya 15.04.2010 14:07

Удалось вывести с помощью такого кода
function HeroParameters()    
{
   MyStr=Str();
   document.writeln("<p align='center'>");
   document.writeln("Ваша сила:"+MyStr+"<br />");
   document.writeln("<\/p>");

}

MyStr опеределна в одну строку
var MyStr=0;
в самом начале .js-файла.
А интеграция практически вся указана в коде находящемся выше....

Skipp 15.04.2010 14:12

Надеюсь, это не будет онлайн игрой=)
А то я буду самым сильным=)


Часовой пояс GMT +3, время: 07:55.