HOWTO · C++

break vs continue in C++

Questo articolo introduce come usare continue e interruzioni in C++

In questa pagina

Questo articolo mostrerà diversi metodi su come usare le istruzioni break e continue in C++.

Utilizzare l’operatore di istruzione break per terminare il corpo del bucle

L’istruzione break simile a continue è chiamata istruzione jump, che viene utilizzata per interrompere il flusso di esecuzione del programma. In questo caso, break viene utilizzato per terminare l’istruzione del cicli for. Notare che, quando la rottura viene raggiunta ed eseguita, il programma lascia il corpo del bucle e continua dall’istruzione successiva - cout << item << "3". break deve essere usato insieme all’iterazione o all’istruzione switch e influenza solo il loop / switch più vicino.

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;
using std::vector;

int main() {
  vector<string> arr1 = {"Gull", "Hawk"};

  for (auto &item : arr1) {
    cout << item << " 1 " << endl;
    for (const auto &item1 : arr1) {
      cout << item << " 2 " << endl;
      if (item == "Hawk") {
        break;
      }
    }
    cout << item << " 3 " << endl;
  }

  return EXIT_SUCCESS;
}

Produzione:

Gull 1
Gull 2
Gull 2
Gull 3
Hawk 1
Hawk 2
Hawk 3

Utilizzare l’istruzione continue per saltare la parte del corpo del loop

L’istruzione continue è la caratteristica del linguaggio che può essere utilizzata per terminare l’iterazione del bucle corrente e iniziare a eseguire l’iterazione successiva. continue può essere utilizzato solo nei cicli for, while o do while. Se l’istruzione viene inserita all’interno di più blocchi di bucle annidati, continue interromperà solo l’iterazione del blocco di bucle interno e passerà alla valutazione dell’espressione della condizione.

Nell’esempio seguente, l’istruzione continue viene raggiunta se l’elemento vector corrente è uguale a Hawk. Una volta eseguito, il programma valuta l’espressione del cicli for, attualmente se ci sono altri elementi rimasti nel vettore. Se vero, viene eseguita la linea cout << item << " 2 ", altrimenti viene raggiunto cout << item << " 3 ".

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;
using std::vector;

int main() {
  vector<string> arr1 = {"Gull", "Hawk"};

  for (auto &item : arr1) {
    cout << item << " 1 " << endl;
    for (const auto &item1 : arr1) {
      cout << item << " 2 " << endl;
      if (item == "Hawk") {
        continue;
      }
    }
    cout << item << " 3 " << endl;
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Produzione:

Gull 1
Gull 2
Gull 2
Gull 3
Hawk 1
Hawk 2
Hawk 2
Hawk 3