2016-09-06 2 views
1
int k; 
for (int i = 1; i < 10; i++) { 
    k = 2*i-1; 
    System.out.print(k+" "); 
} 

Как написать вышеприведенный оператор с вычислением, сделанным в заголовке? Я не могу показаться, чтобы выяснить синтаксис ..Для вычисления циклов в заголовке цикла

+3

«Как написать [...] вычисление [...] в заголовке?" ** Почему? ** Поступая таким образом, вы создадите менее читаемый код. – Seelenvirtuose

+1

FYI вы не должны вычислять 'k' в * заголовке *, что могло бы только запутать и свести будущих читателей с ума. –

+0

Предполагая, что вам не нужно 'i', кроме как вычислять' k': 'for (int k = 1; k <19; k + = 2)'. –

ответ

4

Так что я собираюсь ответить на ваш вопрос и предложить одно небольшое усовершенствование, которое перемещает k в соответствующую сферу цикла:

for(int i = 1, k = 2*i - 1; i < 10; i++, k = 2*i - 1) { 
    System.out.println(k+" "); 
} 

Я м, также стремясь согласиться с комментариями. Вероятно, вы должны просто оставить вычисление k внутри тела цикла для удобства чтения. Вы все равно можете поместить объявление k в заголовок, если k не требуется вне сферы действия цикла.

+0

Зачем нужно иметь k = 2 * i-1 дважды? – Dapper

+2

@Dapper Сначала инициализируется, а затем увеличивается после каждой итерации через цикл. Цикл for имеет синтаксис 'for (declare variables; exit-clause boolean; increment variables)' – Orin

+0

Он может объявлять только 'k = 1;' для for (int i = 1, k = 1; i <10; i ++, k = 2 * i-1) {print k} ', так как первое значение всегда 1 –

Смежные вопросы