Неккорректно работает ф-ция
{
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;
}
alert("Первый кубик=" +count+ "/nВторой кубик="+ count1+ "MyStr после switch ="+MyStr );
}
При ее вызове с 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>
1.
переменная MyStr устанавливается в значение 20 и не меняется в зависимости от переменной sum.
2.
на html-странице вообще не видит изменения переменной, т.е последний alert пишет: MyStr=undefined...
Помогите решить проблему,сам я новичек....
[COLOR="Red"]UPD[/COLOR]
По пункту 2.
Для того чтобы работало, MyStr нужно объявить вне функции. Перед ней, например.
На вашем месте, я бы чуть укоротил код:
[HTML]<script type="text/javascript">
var MyStr;
var m = new Array(0, 0, 22, 20, 16, 18, 20, 20, 16, 24, 22, 18, 20);
function Str()
{
var count = rand(1,6);
var count1 = rand(1,6);
var sum = count + count1;
alert("MyStr до начал работы ф-ции="+MyStr);
MyStr = m[sum];
alert("Первый кубик=" +count+ "/nВторой кубик="+ count1+ "MyStr после switch ="+MyStr );
}
</script>[/HTML]
В конечном счете, если не важно знать, что выпало на кубиках по отдельности, можно так:
[HTML]<script type="text/javascript">
var m = new Array(22, 20, 16, 18, 20, 20, 16, 24, 22, 18, 20);
function Str()
{
MyStr = m[rand(0, 10)];
}
</script>[/HTML]
Также советую выбирать более современную литературу по языку, чтобы не переучиваться потом заново.
В case нету break, поэтому и 20
MyStr объявлена в глобальной области.Спасибо большое за оптимизацию кода).А какие книги Вы порекомендуете?