Doing assignment as initialization on the declaration gives easier code to read; assignments inside conditions being tested are an ugliness we should only use when (e.g. to use it as a while's condition) the alternative is duplication of code.