Вы привели два равноценных варианта. Первый — наиболее универсальный. Второй — более языкоориентированный. Выбор — кому что нравится.
Один из вариантов (сам стараюсь так делать всегда) — начальная инициализация переменных. До выполнения всех действий описываете переменные и присваиваете им значения по умолчанию. Если соотвествующие параметры заданы — значения переменных обновляются.
Если же вы не присваиваете значения аргументов определенным переменным, а напрямую обращаетесь к этим аргументам, то второй вариант записи, на мой взгляд, более красивый. А первый — более читабельный для человека, слабо знакомого с дополнительными языковыми конструкциями типа 2го варианта. плюс второй вариант может генерировать более компактный код, но вряд ли на общем фоне такая экономия что даст :)
Варианты типа 2 лично я стараюсь использовать только если аргументы в выражении достаточно коротки. Слишком громоздкая конструкция неудобочитаема. Забудешь, потом сам будешь разбираться, что же хотел этим сказать :)