Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает простой код? (https://javascript.ru/forum/misc/13695-pochemu-ne-rabotaet-prostojj-kod.html)

Teddi Aps 09.12.2010 20:50

Почему не работает простой код?
 
Вот встал вопрос - как переделать код, изменяющий формат даты
Вот что написал я (это кусок кода)
{c=
a+" час";if(a>1&&a<=4)c=a+" часа";else if(a>4&&a<=20)c=a+" часов";else if(a===21)c=a+" час";else if(a>21)c=a+" часа"}

Странность заключается в том, что выводится 7 часов, но 18 часа:cray:
Что не так?
Пробовал без элсов делать, === заменял на == - не помогает
Целый день смотрел логику жавы, все вроде по правилам...
До этого работал только с Си
Помогите пожалуйста
Дополнение - в переменной а содержится само значение, в с - комбинация, насколько я понял

Kolyaj 09.12.2010 20:55

http://translate.sourceforge.net/wiki/l10n/pluralforms

Teddi Aps 09.12.2010 21:01

Это ссылка на окончания, я правильно понял? Так оно и у меня вроде реализовано...

Kolyaj 09.12.2010 21:17

Это ссылка на формы слов рядом с числительными.

dmitriymar 09.12.2010 21:27

перепиши тоже самое с фигурными скобками в ветвлениях стандарт с++ подойдёт

Teddi Aps 09.12.2010 21:39

Kolyaj, это я понял. Но дело в том что код похоже не совсем обычный. Там со скобками вообще плохо... Я это для виджета делаю
Кстати, чем == отличается от === ??? Нигде не нашел про это.
насчет скобок, фигурные надо? А то никак не работает...

dmitriymar 09.12.2010 21:45

надо в формате
if(){
.....
}
else{
if(){
....
}
else{
.....
}
}
стандарт ещё никто не отменял

Teddi Aps 09.12.2010 21:46

dmitriymar, сейчас пробую

dmitriymar 09.12.2010 21:47

если за ветвлением один оператор то скобки не обязательны. если группа то обязательное обрамление части этого кода

Teddi Aps 09.12.2010 21:56

Получилось так
{c=a+" час";if (a>1&&a<=4){c=a+" часа"};else {if(a>4&&a<=20){c=a+" часов"};else {if(a===21){c=a+" час"};else {if(a>21)c=a+" часа"}}}}

Проверить сейчас уже не получится, так как телефон заряжен... Посмотрим, примет ли вообще код
А пробелы имеют значение?
----------------
Не запустилось вообще.


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