В жизни каждого разработчика всегда полно неопределённости. Как этот кусок кода будет взаимодействовать с тем? Что будет, если сеть упадёт? Что если гамма-лучи инвертируют вон тот двоичный разряд? Что мама готовит сегодня на обед? Есть ли у радона запах?
На самом деле, большая часть информатики - это учение о том, как избавиться от неопределённости. Для высших есть формализмы, вроде Пи-вычислений и 
CSP. Иногда простая диаграмма состояний - как дар свыше. Если вы с такими не сталкивались, не расстраивайтесь - у вас ещё всё впереди.
Noah прислал следующий Javascript-код, который показывает, как убрать неопределённость насчёт состояния программы при ветвлениях:
function GetGridTable()
    {
        if (document.getElementById('" + gridPanelTable.ClientID + @"') != null)
        {
            return document.getElementById('" + gridPanelTable.ClientID + @"');
        }
        else if (document.getElementById('" + gridPanelTable.ClientID + @"') !=  null)
        {
            return document.getElementById('" + gridPanelTable.ClientID + @"');
        }
        else
        {
            return null;
        }
    }
Andy, в свою очередь, прислал пример из PHP, показывающий, как гарантированно убедиться, что файл существует:
    if(file_exists($fDir."announcement.jpg") and
    file_exists($fDir."announcement.jpg")) {
       $nImg = "announcement.jpg"; }
Одна из проблем вышеприведённых фрагментов в том, что у каждой из ветвей могут быть свои побочные эффекты. Создавать ветвления, где оба потока команд выполняют строго одни и те же действия, непросто, однако - как выяснил 
Ashton - возможно, даже в языках вроде C#:
    if (BatchProcessor.ProcessBatch())
    {
    }
    else
    {
    }
Оригинал.