Что означает одна точка с запятой в цикле for? - PullRequest
0 голосов
/ 28 апреля 2019

Я следовал учебнику о том, как сделать сортировку вставкой, и наткнулся на эту строку кода:

for(; j >= 0 && tempVar < insertionArray[j]; j--)

Мой вопрос: что означает точка с запятой после первой скобки?

Я знаю, что двойная точка с запятой в цикле for определяет бесконечный цикл,

for(;;)

а что значит один?

Ответы [ 4 ]

2 голосов
/ 28 апреля 2019

В цикле for есть 3 части, каждая из которых разделена точкой с запятой:

      initialisation;   evaluation  ;  iteration  
for (   int i = 0   ; i < someValue ;     i++    )

Если вы уже инициализировали переменную, которую хотите оценить и выполнить итерацию, вам не нужно делать это в цикле:

int i = 0;

for(; i < someValue ; i++ )
0 голосов
/ 28 апреля 2019

Делит строку на разные блоки.

Первая часть - это одноразовая инструкция, вторая - условие цикла, а третья - операция, выполняемая после / перед кодом цикла.

0 голосов
/ 28 апреля 2019

Это просто раздел инициализатора Операторы в разделе инициализатора выполняются только один раз, перед входом в цикл. Раздел инициализатора может быть одним из следующих:

Объявление и инициализация локальной переменной цикла, к которой нет доступа извне цикла.

Ноль или более выражений операторов из следующего списка, разделенных запятыми:

оператор присваивания

вызов метода

префиксное или постфиксное выражение приращения, например ++ i или i ++

Префиксное или постфиксное декрементное выражение, например --i или i -

создание объекта с использованием нового ключевого слова

жду выражения

0 голосов
/ 28 апреля 2019

Первая часть цикла for состоит в объявлении и инициализации переменной счетчика (в данном случае j).Так как он был объявлен и инициализирован перед циклом, мы не делаем это снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...