1. C# / Говнокод #23813

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    while(true) 
    {
        i++;
        if (i > Int32.MaxValue - 10)
        {
            MessageBox.Show("Зациклилось!");
            break;
        }
    }

    Запостил: mazhuravlev, 22 Февраля 2018

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

    • Int32.MaxValue + 1 == Int32.MinValue?
      или exception?
      Ответить
      • От настроек проекта зависит.
        Ответить
        • Назависел тебе за щеку, проверь.
          Ответить
        • всмысле от опций копелятора cl.exe, которые храняца на уровне проекта (и конфигурации еще, если я верно помню визуальнуюстудию)
          Ответить
        • var foo = Int32.MaxValue;
          foo++;
          Console.Write(foo);

          -2147483648

          Так что прекрасный случился перехлест, все эти ваши хваленые высокуровневые копеляторы пропустили такую глупую ошибку
          ахахаха
          Ответить
          • Можно делать checked{foo++;} или включить в настройках проекта Build -> Advanced -> Check for arithmetic overflow, тогда будет OverflowException в таких случаях.
            Ответить
            • Спасибо, я догадывался что как-то так и есть

              Совсем я забыл c#.net, а ведь 11 лет назад я сертфицировался по 70-536
              Ответить
              • Может быть 11 лет назад этой фичи просто не было?
                Ответить
          • > все эти ваши хваленые высокуровневые копеляторы пропустили такую глупую ошибку

            Толи дело PHP
            # https://ideone.com/nVwBdB
            $x = PHP_INT_MAX;
            echo "9000 => ", $x, PHP_EOL;
            
            $x++;
            echo "over 9000 => ", $x, PHP_EOL;
            
            ## 9000      => 9223372036854775807
            ## over 9000 => 9.2233720368548E+18
            Ответить
            • А если от получившкгося фловта отнять единичку то будет обратно max int?
              Ответить
    • Не "зациклилось" а "скоро зациклится".
      Ответить

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