1. ActionScript / Говнокод #11771

    −86

    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
    switch(page) {
    		case 0:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 1:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 2:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 3:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    	}

    Долго искал отличия кейсов, не нашол

    Запостил: Edd, 14 Сентября 2012

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

    • Так, справа за пробелами ничего нет... может, какие-то из "с" русские?
      Ответить
    • Автор хотел написать это:
      switch(page) {
      		case 0:
      			showCurrentCar(0);
      			hidePreviousCar(currentModel);
      			currentModel = 0;
      			break;
      		case 1:
      			showCurrentCar(1);
      			hidePreviousCar(currentModel);
      			currentModel = 1;
      			break;
      		case 2:
      			showCurrentCar(2);
      			hidePreviousCar(currentModel);
      			currentModel = 2;
      			break;
      		case 3:
      			showCurrentCar(3);
      			hidePreviousCar(currentModel);
      			currentModel = 3;
      			break;
      	}

      И ещё добавить ветку default, но потом уснул.
      Ответить
      • а в default писать -1?
        Ответить
      • Ещё здесь должны быть if'ы:
        if (page == 0)
        {
            showCurrentCar(0);
            hidePreviousCar(currentModel);
            currentModel = 0;
        } 
        else
            if (page == 1)
            {
                showCurrentCar(1);
                hidePreviousCar(currentModel);
                currentModel = 1;
            } 
            else
                if (page == 2)
                {
                    showCurrentCar(2);
                    hidePreviousCar(currentModel);
                    currentModel = 2;
                } 
                else
                    if (page == 3)
                    {
                        showCurrentCar(3);
                        hidePreviousCar(currentModel);
                        currentModel = 3;
                    }
        Ответить
        • Неправильно. Нужно сравнение вести по строкам (потому что именно строки приходят в XML-ке от сервака или лежат в JSON).
          if (map.get("page") == "0")
          {
              showCurrentCar("0");
              hidePreviousCar(currentModel);
              currentModel = "0";
          } 
          else
              if (map.get("page")  == "1")
              {
                  showCurrentCar("1");
                  hidePreviousCar(currentModel);
                  currentModel = "1";
              } 
              else ...
          Ответить
          • Слишком высокоинтеллектуально.
            if (page.isEqual("0"))
            {
                showCurrentCar(0);
                hidePreviousCar(currentModel);
                currentModel = 0;
            } 
            else
                if (page.isEqual("1"))
                {
                    showCurrentCar(1);
                    hidePreviousCar(currentModel);
                    currentModel = 1;
                } 
                else
                    if (page.isEqual("2"))
                    {
                        showCurrentCar(2);
                        hidePreviousCar(currentModel);
                        currentModel = 2;
                    } 
                    else
                        if (page.isEqual("3"))
                        {
                            showCurrentCar(3);
                            hidePreviousCar(currentModel);
                            currentModel = 3;
                        }
            Ответить
        • А почему не goto?
          Ответить
          • Это тоже слишком сложно. Да и идиотам от программирования, как правило, всё же вдалбливают в голову, что goto - плохо. А вот почему - уже нет.
            /* встроенный в мозг отключаемый генератор говнокода - это страшно и прикольно одновременно %) */
            Ответить
            • else тоже слишком сложно...
              Ответить
              • Да, пожалуй. Но тогда не будет красивой лесенки:

                if (page.isEqual("0"))
                {
                    showCurrentCar(0);
                    hidePreviousCar(currentModel);
                    currentModel = 0;
                } 
                if (page.isEqual("1"))
                {
                    showCurrentCar(1);
                    hidePreviousCar(currentModel);
                    currentModel = 1;
                } 
                if (page.isEqual("2"))
                {
                    showCurrentCar(2);
                    hidePreviousCar(currentModel);
                    currentModel = 2;
                } 
                if (page.isEqual("3"))
                {
                    showCurrentCar(3);
                    hidePreviousCar(currentModel);
                    currentModel = 3;
                }
                Ответить
                • Можно и с лесенкой, но без else:
                  if (page < 4) {
                    if (page < 3) {
                      if (page < 2) {
                        if (page < 1) {
                          showCurrentCar(0);
                          hidePreviousCar(currentModel);
                          currentModel = 0;
                          return;
                        }
                        showCurrentCar(1);
                        hidePreviousCar(currentModel);
                        currentModel = 1;
                        return;
                      }
                      showCurrentCar(2);
                      hidePreviousCar(currentModel);
                      currentModel = 2;
                      return;
                    }
                    showCurrentCar(3);
                    hidePreviousCar(currentModel);
                    currentModel = 3;
                    return;
                  }
                  Ответить
                  • А так?
                    if (page == 0) {
                        // ...
                    }
                    if (page != 0 && page == 1) {
                        // ...
                    }
                    if (page != 0 && page != 1 && page == 2) {
                        // ...
                    }
                    Ответить

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