2015-11-03 2 views
-1

Мне нужна помощь, чтобы понять, что такое Обозначенное заявление. У меня есть пример:Небезопасный отчет в java

for(int var1 =0; var1 < 5 ; var1++) { 
    for(int var2=0 ; var2 < 5 ; var2++){ 
     if(var2 == 2) 
      continue; 
      System.out.println("var1:" + var1 + " var2:"+ var2); 
    } 
} 

но когда я выполнил это не пропускает текущей итерации сокровенном для цикла А имеют следующий вывод:

var1:0 var2:0 
var1:0 var2:1 
var1:0 var2:3 
var1:0 var2:4 
var1:1 var2:0 
var1:1 var2:1 
var1:1 var2:3 
var1:1 var2:4 
var1:2 var2:0 
var1:2 var2:1 
var1:2 var2:3 
var1:2 var2:4 
var1:3 var2:0 
var1:3 var2:1 
var1:3 var2:3 
var1:3 var2:4 
var1:4 var2:0 
var1:4 var2:1 
var1:4 var2:3 
var1:4 var2:4 
+0

Я не понимаю, в чем проблема. Итерация внутреннего цикла, когда 'var2' равна' 2', пропускается, как показано на выходе. В чем проблема? – Arc676

+0

Я проверил этот пример с этого сайта http://www.java-examples.com/continue-statement, но после этого описания «Эта форма утверждения вызывает пропуски текущей итерации самой внутренней для» кода не пропускает самую внутреннюю для цикла –

+0

Если вы не используете continue; затем печатается var2: 2, что означает продолжение; пропускает выполнение System.out.println – Shivam

ответ

0

Вы continue утверждение не пропустить ни одной итерации внутренний цикл:

var1:2 var2:1 var1:2 var2:3 

Вы можете видеть, что var2: 2 пропускается.

Если вы хотите пропустить то, что осталось от текущего выполнения внутреннего контура, используйте break вместо continue.

0

Это Пропустить текущую итерацию внутреннего цикла.

Вы можете увидеть его с выхода:

var1:0 var2:1 var1:0 var2:3 

->var2 == 2 пропускается.

Обратите внимание, что ваш continue заявление находится в области с var2 == 2 проверки только: ваш плохой отступов предполагает как-то, что println утверждение будет следовать continue, что может показаться обманчивым.

0

continue оператор делает пропустить один итерации внутреннего цикла

, как вы видите в своем выходе var2:2 всегда пропускаются

continue: выражение обновления сокровенного для цикла. Он используется для раннего завершения обработки цикла.

От javaDoc: оператор продолжения пропускает текущую итерацию цикла for, while или do-while. Незамеченная форма пропускается до конца тела самого внутреннего цикла и оценивает логическое выражение, которое управляет циклом.

+0

В этом случае Unlabeled continue Statemen, должен пропустить некоторую итерацию цикла в соответствии с условием оператора if? –

+0

Да, но он пропускает текущую итерацию –