Принципы объектно-ориентированного программирования

         

Оператор continue



Оператор continue

Как и break, оператор continue позволяет изменять выполнение цикла. Но continue не завершает встроенный оператор текущего цикла, а останавливает текущую итерацию и передает управление на начало цикла для следующей итерации. В следующем примере я хочу проверить, не повторяются ли строки в массиве. Один из вариантов решения — просматривать массив с помощью вложенных циклов, сравнивая один элемент с другим. Но мне, конечно же, не хочется сравнивать элемент с самим собой, иначе я вычислю неверное число совпадающих элементов. Следовательно, если один индекс массива (/) совпадает с другим индексом этого массива (/'), это значит, что у меня один и тот же элемент и сравнивать их не нужно. В этом случае я использую оператор continue чтобы прекратить текущую итерацию и передать управление на начало цикла.

using System;



using System.Collections;

class MyArray {

public ArrayList words;

public MyArrayO {

words = new ArrayListO; words.Add("foo"); words.Add("bar"); words.AddC'baz"); words.Add("bar"); words.AddC'ba"); words.Add("foo"); } >

class ContinueApp {

public static void MainQ

{

MyArray myArray = new MyArrayO; ArrayList dupes = new ArrayListO;

Console.WriteLine("Обработка массива..."); for (int i = 0; i < myArray.words.Count; i++)

{

for (int J = 0; j < myArray.words.Count; ]++)

{

if (i == j) continue;

if (myArray.words[i] == myArray.words[j]

&& !dupes.Contains(j)) {

dupes.Add(i);

Console.WriteLine("'{0}' встречается "+ "в строках {1} и {2}". myArray.words[i], i + 1, ] + 1); } } } Console.WriteLine("Было обнаружено {0} совпадений",

((dupes.Count > 0) ? dupes.Count.ToStringO : "no")); } >

Для просмотра массива сгодился бы и цикл foreach. Однако здесь я хотел отслеживать текущий элемент, так что лучше использовать for.

 

Содержание раздела