1. JavaScript / Говнокод #14277

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    function currSnowCalcPrice(type, square, height){
                var price = false;
                switch (type) {
                  //скатная крыша
                  case 1:
                    switch (true) {
                      case square < 125:
                        price = 'min';
                      break      
                     //0 - 20см 
                      case height < 20:
                            switch (true) {                          
                              case square < 500:
                                    price = 39;
                                break
                              case square < 1000:
                                    price = 34;
                                break
                              case square < 2000:
                                    price = 32;
                                break                            
                              default:
                                price = 0;
                            }
                        break
                      //20 - 30 см  
                      case height < 30:
                            switch (true) {
                              case square < 500:
                                    price = 44;
                                break                        
                              default:
                                price = 39;
                            }
                        break
                      default:
                        price = 0;
                    }
                    break
                  case 2:
                    switch (true) {
                      case square < 250:
                        price = 'min';
                      break                     
                      //0 - 14см   
                      case height < 14:
                            switch (true) {
                              case square < 500:
                                    price = 21.5;
                                break  
                              case square < 4500:
                                    price = 19.5;
                                break  
                              case square < 9500:
                                    price = 17.5;
                                break  
                              case square < 15000:
                                    price = 15.5;
                                break                          
                              default:
                                price = 0;
                            }
                        break
                      //14 - 30 см  
                      case height < 30:
                            switch (true) {
                              case square < 500:
                                    price = 23.5;
                                break  
                              case square < 4500:
                                    price = 21.5;
                                break  
                              case square < 9500:
                                    price = 19.5;
                                break  
                              case square < 15000:
                                    price = 17.5;
                                break                          
                              default:
                                price = 0;
                            }
                        break
                      default:
                        price = 0;
                    }
                    break
                  default:
                    price = false;
                }
                return price;
            }

    Функция возвращает цену за уборку одного метра квадратного поверхности. Есть минимальное количество когда будет возвращено значение min. false или 0 в случае не существующего типа поверхности или значений площади или глубины вне загаданного диапазона.

    Запостил: AlexP, 25 Декабря 2013

    Комментарии (12) RSS

    • Членомер какой-то.
      Ответить
    • Case, case, case!
      I'm looking for the good time
      Case, case, case!
      I'm ready for your love
      Ответить
    • что случилось с \; после бряков?
      Ответить
    • А в сишечке так нельзя :(
      switch (true) {
        case square < 500:
         price = 21.5;
         break  
       case square < 4500:
         price = 19.5;
         break  
        case square < 9500:
         price = 17.5;
         break  
        case square < 15000:
            price = 15.5;
            break                          
       default:
             price = 0;
      }
      Ответить
      • А есть какая-то структура/стандартная функция для поиска в такой ситуации, типа двоичного поиска?
        Ответить
        • Для поиска по диапазона вроде нет ни в сишке ни в жс. Но я могу ошибаться.
          Ответить
          • >bsearch(), если мы о сишке.
            А двоичный поиск будет искать ближайшее большее/меньшее число?

            Нашел http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#binarySearch(byte[], byte)
            Ответить
            • Про bsearch() я лоханулся. Оно ищет точное совпадение.

              Жабий binarySearch, да, похож на правду. А в крестах тогда std::upper_bound().
              Ответить
            • java!=javaScript
              В андроидных либах видел что-то более православное, SparseArray вроде.
              Ну и SortedMap конечно.
              Ответить
      • А в чем сакральный смысл этой конструкции? Это же просто пачка if-else.
        Ответить
      • В GCC можно:
        http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Case-Ranges.html
        Ответить

    Добавить комментарий