пропуская итерацию в то время как цикл Java

2

Я только начинаю программировать, и я только начал заниматься java в нашей школе на прошлой неделе. То, что я пытаюсь сделать, это пропустить итерацию, используя оператор continue во время цикла в java, и, к сожалению, результат не тот, который я ожидал, что это будет...

Это мой код:

// Using while Loop
int counter = 1;

while(counter <= 5){
    if(counter == 3){
        continue;
    }
    System.out.println(counter);
    counter++;
}

Вывод: 1 2, и он не печатает 4 и 5, но я заметил, что программа все еще не завершена.

Я даже пробовал кодировать его так:

int counter = 1;    

while(counter <= 5){
    System.out.println(counter);
    if(counter == 3){
        continue;
    }
    counter++;
}

Он просто печатает 3 безостановочных

int counter= 1;    

while(counter <= 5){
    counter++;
    if(counter == 3){
        continue;
    }
    System.out.println(counter);
}

этот печатает 2 4 5 6 вместо 1 2 4 5

Я использовал цикл для этого, и он хорошо работает

это мой код:

//using for loop
for(int counter = 1; counter <= 5; counter++){
     if(counter == 3){
          continue;
     }
     System.out.println(counter);
}

это печатает правильный результат...

Теперь, может кто-нибудь, пожалуйста, скажите мне, в чем моя ошибка при использовании цикла while в этом упражнении? Спасибо...

  • 0
    Если вы continue там, это не до counter++
Теги:

3 ответа

2
if(counter == 3){
    continue;
}
System.out.println(counter);
counter++;

Здесь оператор continue пропускает ctr++; выражение, так что всегда 3 и в while цикл никогда не заканчивается

int counter = 1;    

while(counter <= 5){
    System.out.println(counter);
    if(counter == 3){
        continue;
    }
    counter++;
}

Здесь будет counter++; оператор печати, как и до continue, но counter++; будет по-прежнему пройденным, что приведет к бесконечному циклу печати 3.

int counter= 1;    

while(counter <= 5){
    counter++;
    if(counter == 3){
        continue;
    }
    System.out.println(counter);
}

Здесь counter++ достигнуто, но он будет увеличен до println() чтобы он печатал один плюс значения, которые вы хотите

  • 0
    так что я могу сделать, чтобы это исправить?
  • 0
    @robert Почему бы не использовать цикл for который автоматически увеличивает i ?
Показать ещё 4 комментария
1

Кстати, в первом ответе @GBlodgett вы знаете, почему ваша программа не показывает результат, которого вы ожидали. Вот как вы можете достичь своего результата.

//Использование while Loop

int counter = 0;

while(counter < 5){
    counter++;
    if(counter == 3){
        continue;
    }


    System.out.println(counter);

    }
  • 0
    то, что я пытаюсь сделать, это пропустить номер 3 и напечатать 1 2 4 5. Если я использую перерыв, он просто напечатает 1 2 3
  • 0
    Проверьте это еще раз, пожалуйста.
Показать ещё 3 комментария
1

Проблема в том, что как только счетчик == 3, он всегда будет указывать утверждение if как true и никогда не увеличивать счетчик. Таким образом, цикл while будет печатать 1 2, а затем выполнять бесконечно.

Чтобы решить эту проблему, введите код так:

// Using while Loop
int counter = 1;

while(counter <= 5){
    if(counter == 3){
        counter++;
        continue;
    }
    System.out.println(counter);
    counter++;
}

Просто добавьте counter++ перед оператором continue. Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню