singlepost

JavaSсript – если переменная равна целому числу? << На главную или назад  

как написать условие: если переменная равна любому целому числу, главное чтоб числу а не букве например?

if(g==…){}
что поставить вместо "…"?

20 ответов в теме “JavaSсript – если переменная равна целому числу?”

  1. 20
    Жека Кирпичев ответил:

    Ну разумеется это не будет работать под IE, это же Java, а не Javasсript! Я тебе показал хороший алгоритм решения этой задачи и пример короткого и понятного кода, решающего эту задачу. Твоя задача – понять использованный подход и сделать на javasсript не хуже. Будем считать, что ты – эксперт по javasсript, я – эксперт по качеству кода (хотя и то, и другое далеко от действительности), и объединенными усилиями следует сделать хорошую программу на javasсript.

    Касаемо "у каждого он свой" и "там где не смотрят, можно не заморачиваться": если тебе не доставляет физически неприятных ощущений написание говнистого кода, то это значит, что ты запросто *не заметишь*, когда напишешь, в условиях нехватки времени и давления начальства, говнистый код в реальной задаче ("нечего думать, прыгать надо") – и это тебе и твоей компании ой как аукнется и в денежном эквиваленте в т.ч.!

    Над этим действительно надо работать, а не обижаться, когда тебе на это указывают.
    Красота – это фактически единственный способ борьбы со сложностью кода. Учись бороться со сложностью не по-медвежьи напролом (исправлять пока не заработает, какое бы месиво не получалось), а подумавши.

  2. 19
    Жека Кирпичев ответил:

    Кстати, что ты называешь "принципами работы с js"? Это список функций, которые работают в IE, что ли? Или все-таки еще и хороший стиль написания кода на js, способы организации программ, отличительные и мощные особенности языка? Чему вас учит препод?

    Javasсript – очень мощный язык, во многих отношениях гораздо мощнее и удобнее, чем Java или тем более си. Он близок к, не побоюсь этого слова, лиспу.

  3. 18
    Александр Чигринец ответил:

    Нет, Ирина. Есть определённые подходы и критерии, общие для всех. Они объективны, выработаны долгой практикой разработки и (что весьма важно) сопровождения ПО.
    Стиль или есть или его нет. Когда "там где надо" это – плохой стиль и над ним нужно работать. Чтобы даже для себя писать в удобочитаемой манере.

    Если вы планируете работать программистом, то тестовое задание, написанное на собеседовании в таком стиле, сведёт ваши шансы, если не к нулю, то к величине, не далеко от нуля отстоящей.

  4. 17
    Ирина Ким ответил:

    2Жека jkff Кирпичев
    "Мне кажется, препод или программист, которому важно только чтобы "работало" и неважна эстетическая составляющая кода – хреновый препод/программист."
    >у данного препода нет задачи научить нас красиво код писать, у него задача научить принципам работы с JS,asp.. и тд, и со своей задачей он вполне прекрасно справляется
    А что касается твоего кода на Java, то это блин под чертовым ИЕ хрен работать будет, потому что этот браузер не понимает работы со строками и ф-ции типа substring не катят.
    2Александр Чигринец
    что касаемо стиля, то у каждого он свой, если вам не нравится, то это сугубо ваше дело, там где надо, там я нормально пишу, а там где на это не смотрят то можно и так, чтоб не заморачиваться

    а насчет примера,то спс

  5. 16
    Александр Чигринец ответил:

    На целое число можно проверить регулярным выражением:
    function isInt(val){
    return /^[+-]?\d+$/.test(val)
    }

    Ирина Ким, навыки программирования включают в себя ещё и стиль написания кода. И вырабатывать этот стиль нужно сразу, а не потом как-нибудь, когда время поджимать не будет. Время всегда будет поджимать.

  6. 15
    Жека Кирпичев ответил:

    Мне кажется, препод или программист, которому важно только чтобы "работало" и неважна эстетическая составляющая кода – хреновый препод/программист.

    Так.. Вот тебе код на Java, на JS сама как-нибудь переведи.

    int evaluate(String expr) {
    expr = expr.replaceAll(" ","");
    if(!Pattern.compile("[0-9]+([+-][0-9]+)*=").matcher(expr).matches())
    throw new IllegalArgumentException("A string of the form 123+456-78..= expected");
    String[] parts = expr.substring(0,expr.length()-1).split("[+-]");
    int res = Integer.parseInt(parts[0]);
    for(int i=0; 2*i+2<parts.length; ++i) {
    res += (parts[2*i+1].equals("+") ? 1 : -1) * Integer.parseInt(parts[2*i+2]);
    }
    return res;
    }

    Не тестировал, но идея, думаю, понятна.

  7. 14
    Евгений Тихонов ответил:

    if (((K*10)%10)==0) { document.write("Число целое"); }

  8. 13
    Ирина Ким ответил:

    вот насчет говнопреподов ты не прав, ты их не знаешь так что не стоит так говорить, я сочувствую что тебе с преподами не повезло, не стоит всех под одну гребенку ставить ок?
    а что касается критериев и тому подобной бредятины, то никто не от чего не зависит, просто на данный момент мне нужно чтобы все правильно и без сбоев работало, тут уже главное приоритет.
    Если тебе не нравится мой код, то можешь просто не брать с меня пример=)))
    Если ты можешь написать "красивее" и лучше, да так чтоб все работало в соответствии с заданием, то ради Бога, дело твое, однако когда я просила помочь, ты в кустах сидел, так что нефиг после боя кулаками махаться.
    Да и в конце концов – на вкус и цвет товарищей нет=)

  9. 12
    Жека Кирпичев ответил:

    "Не ок" тут твоя позиция "работает, никто не видит и ладно".
    Если ты будешь зависеть от критериев оценки своих говнопреподов (которые на код не смотрят), а не от своих собственных – программировать как следует ты никогда не научишься.

  10. 11
    Ирина Ким ответил:

    ну других вариантов все равно никто не предложил, а че нить попроще,еще и чтоб под ИЕ работало, придумать я не в состоянии, тем более что препод на код не смотрит, а работает все на 100% и без багов, так что все ок=)

  11. 10
    Жека Кирпичев ответил:

    Ирина, ты уж извини, но это жопа полная, а не код!

  12. 9
    Евгений Тихонов ответил:

    Индусский код :)

  13. 8
    Ирина Ким ответил:

    ну вобщем я так сделала=)

    function vich(src,dst1,dst2){
    ss=new Array();s=new Array();
    m=0;p=0;
    dd="";
    a=src.split(" ");
    for(i in a){ss=ss+a[i];
    }
    for(i=0; i<ss.length; i++){s[i]=ss.charAt(i);}
    for(i=0; i<s.length; i++){
    if(s[0]=='-'){
    s.splice(0,0,0);
    }
    }
    for(i=0; i<s.length; i++){
    if(s[i]=='+'){
    s.splice(i,0,'.');
    s.splice(i+2,0,'.');
    i++;
    }
    if(s[i]=='-'){
    s.splice(i,0,'.');
    s.splice(i+2,0,'.');
    i++;
    }
    if(s[i]=='='){
    s.splice(i,0,'.');
    i++;
    }
    }
    for(i=0; i<s.length; i++){dd=dd+s[i];}
    delete(s);
    s=new Array();
    s=dd.split(".");
    for(i=0; i<s.length; i++){
    if(s[i]=='+'){
    p=s[i-1]*1+s[i+1]*1;
    pp=p.toString();
    s.splice(i-1,3,pp);
    i=0;
    }
    if(s[i]=='-'){
    m=s[i-1]*1-s[i+1]*1;
    mm=m.toString();
    s.splice(i-1,3,mm);
    i=0;
    }
    if(s[i]=='='){
    d=s[i-1];
    }
    }
    Res2=d;
    dst2.value=Res2;
    Res1=ss+d;
    dst1.value=Res1;
    }

  14. 7
    Евгений Безымянников ответил:

    //wild.softodrom.ru/ap/p4079.shtml
    смотрите как там сделано

  15. 6
    Евгений Тихонов ответил:

    if (((K*10)%10)==0) { document.write("Число целое"); }

  16. 5
    Евгений Безымянников ответил:

    не проще ли из строки вырезать сначала пробелы полностью, проверить на = в конце (непонятно хачем, если и так ясно что делаем), а потом проверить символы на +- и цифры ?

  17. 4
    Ирина Ким ответил:

    а я че сделала? хотя бы код гляньте

  18. 3
    Ирина Ким ответил:

    короче задание:
    вводится строка типа -1 -517+9 =
    нужно вывести решение ур-я. Допустимы тока + и -

    я написала так:

    <HTML>
    <HEAD>
    <meta http-equiv="Content-type" content="text/html; charset=Windows-1251">
    <script LANGUAGE="JavaS?1?ript">
    function sravnenie(src,dst1,dst2){
    ss=new Array();
    m=0;p=0;
    a=src.split(" ");
    s=new Array();
    for(i in a){
    ss=ss+a[i];
    }
    for(i=0; i<ss.length; i++){
    s[i]=ss.charAt(i);
    }
    while(s.length!=2){
    for(i=0; i<s.length; i++){
    if(s[0]=='-'){
    s.splice(0,0,0);
    }
    if(s[i]=='+'){
    p=s[i-1]*1+s[i+1]*1;
    pp=p.toString();
    s.splice(i-1,3,pp);
    i=0;
    }
    if(s[i]=='-'){
    m=s[i-1]*1-s[i+1]*1;
    mm=m.toString();
    s.splice(i-1,3,mm);
    i=0;
    }
    if(s[i]=='='){
    d=s[i-1];
    }
    }
    }
    Res2=d;
    dst2.value=Res2;
    Res1=ss+d;
    dst1.value=Res1;
    }
    </script>
    </HEAD>
    <BODY>

    Введите арифметическое выражение, содержащее знаки "+" и "-", и заканчивающееся знаком "=":<br>
    <input id="src" size="100"><br>
    Результат вычислений: <br>
    <input id="dst1" size="100" readonly><br><br>
    Ответ: <br>
    <input id="dst2" size="100" readonly><br><br>

    <input type="button" value="Посчитать" id="mybutton" onClick="sravnenie(document.getElementById('src').value,document.getElementById('dst1'),document.getElementById('dst2'));">
    </BODY>
    </HTML>

    все работает только если числа из одной цифры, т.е. прибавить например 22 нельзя, ниче работать не будет…

  19. 2
    Жека Кирпичев ответил:

    Смотря какому.

  20. 1
    Евгений Безымянников ответил:

    округлите переменную и сравните с ней же… тамый простой вариант

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.