Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Try/Catch не могу разобраться (https://javascript.ru/forum/project/4347-try-catch-ne-mogu-razobratsya.html)

SunkaZlo 13.07.2009 19:23

Try/Catch не могу разобраться
 
вообщем лето, я открыл учебник по джаваскрипту. дошел до 116ой странице (вай маладец)

прочитал, дошел до этой темы
думал, что разобрался, написал прогу,поидее должен считать факториал

x = prompt("Икс");
Try {
if (x < 0) throw new Error("x не может быть отрицательным");
else {for(var f = 1; x > 1; f *= x, x--);alert (f);}}
catch(ex) {alert (ex);}


смысл в том, что она не пашет
а я уже на"альттабился", чтобы сравнить с учебником
все равно ошибки не вижу

вообщем вот, заранее спасибо

Kolyaj 13.07.2009 19:28

try с маленькой буквы.
prompt возвращает строку, а не число.

SunkaZlo 13.07.2009 19:38

благодарю. помогло.
еще буквально 1 вопрос:
Есть на форуме тема, где просто задают вопрос, и проблема решается одним ответом? (Как эта моя). Имхо глупо на каждый вопрос тему делать. Поиск юзал сразу как зарегался, не подобрал ключевые слова норм :(

Kolyaj 13.07.2009 20:37

Если спрашивающий не знает ответа на вопрос, то он не знает и сколько предложений будет в ответе :)

SunkaZlo 13.07.2009 21:00

ну ладно :)
еще вопрос тогда:
var a= prompt ("Сюда текст наоборот"); 
a.reverse();              
var s = a.join();
document.write (s)


в теории прога должна писать текст наоборот
например
тевирп в привет
или апож в сами знаете что

реализация через reverse обязательна (щас это читаю!)

подскажите че не так

соЛнЕчНаЯ 19.10.2009 20:37

о факториалах
 
Только начинаю учиться javascript... Задали домашнее задание... Написаоть скрипт при помощи цикла для вычисления факториала.

Вот, что у меня получилось:

<html>
<head>
<title> Факториал </title>
</head>
<body>
<script>
var n=prompt("Введи число","")
var z=1;
for (i=1; i<=n; i++);
 {
z=z*i;
document.write (z);
}
</script>
</body>
</html>


при вводе числа 5 выдается ответ 6, хотя, судя по логике, все должно быть верно... то есть ответ должен быть 120... (5!=1x2x3x4x5=120)

Подскажите, пожалуйста, где я ошиблась?

grOM 19.10.2009 22:07

интересно какя здесь длина заголовка
 
у тебя i =1 потом 2-м, 3 и 4
если i<5 то i (max) = 4 но не 5

соЛнЕчНаЯ 19.10.2009 22:47

"i" у меня меньше либо равно пяти. то есть? как только "i" достигнет 5 - цикл дожен прекратиться.

Kolyaj 20.10.2009 08:46

var n = parseInt(prompt("Введи число", ""));  // строку к числу нужно привести
var z = 1;
for (var i = 1; i <= n; i++) {  // <-- точка с запятой тут не нужна
    z = z * i;
}
document.write (z);   // вне цикла должен быть

соЛнЕчНаЯ 20.10.2009 13:03

Kolyaj, Спасибо большое! Все заработало! :)


А вот эта строочка мне пока не понятна... этот материал нам не давали...
var n = parseInt(prompt("Введи число", ""));  // строку к числу нужно привести


Но и с тем, что было - все работает :)


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