- 1
try{while(confirm("The result is "+(1/prompt("a*x=b\n\nEnter a").split().join()*prompt("a*x=b\n\nEnter b").split().join())+"\n\nOnce again?"));}catch(e){}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+159
try{while(confirm("The result is "+(1/prompt("a*x=b\n\nEnter a").split().join()*prompt("a*x=b\n\nEnter b").split().join())+"\n\nOnce again?"));}catch(e){}
guest 31.08.2013 10:37 # +1
roman-kashitsyn 31.08.2013 10:39 # +7
eth0 01.09.2013 17:51 # +5
Qwertiy 31.08.2013 11:09 # +1
zloirock 31.08.2013 11:14 # +1
Qwertiy 31.08.2013 15:41 # +1
А теперь вспоминаем, что prompt при отмене возвращает null. При использовании null в матеметическом выражении он приведётся к 0, но это не надо. А вот null.split() выкинет исключение, соответственно try-catch, расположенный вне while это исключение ловит. Т. о. try-split-catch нужны для завершения цикла при нажатии отмена в prompt. Ну а join отменяет split в тех случаях, когда нажато Ok.
Вот :D
wvxvw 31.08.2013 16:55 # +5
1024-- 31.08.2013 20:16 # 0
В рамках сей "физики троллей" можно .split().join() на .trim() заменить для краткости.
Или тут снова подвох?
Qwertiy 31.08.2013 20:37 # 0
kegdan 31.08.2013 20:46 # +2
Qwertiy 31.08.2013 20:51 # 0
kegdan 31.08.2013 21:00 # 0
wvxvw 31.08.2013 16:51 # +2
wvxvw 31.08.2013 16:53 # +2
1024-- 31.08.2013 11:47 # +1