answersLogoWhite

0

What are labels in Cpp and can you give some examples?

Updated: 8/17/2019
User Avatar

Wiki User

11y ago

Best Answer

Labels are used to label the statements that follow for use with goto statements. Labels are user-defined names that follow standard naming conventions, starting in column 1 and ending with a colon (:). They are usually placed on a line of their own but must appear in the same function that contains the goto. Note that a label that has no statements following (the label is the last statement in the function), it must include a semi-colon (;) after the colon (an empty statement).

Although many programmers frown upon the use of goto, it is really no different to using return, break or continue to interrupt the normal program flow within a function. However, it's fair to say goto statements are often used quite inappropriately, producing "spaghetti code" that is really quite difficult to follow.

In many cases there will be a better alternative to using a goto, however the following example illustrates a correct usage for goto, breaking out of nested compound statements. The functions UseBreak() and UseGoto() both produce exactly the same results, but the goto version is easier to follow as the conditional expression only needs to be evaluated once. Evaluating one goto rather than two breaks is also more efficient.

#include <iostream>

using namespace std;

void UseBreak()

{

cout<<"UseBreak() executing..."<<endl;

int i, j;

for(i=0;i<10;++i)

{

cout<<"Outer loop executing. i="<<i<<endl;

for(j=0;j<2;j++)

{

cout<<"\tInner loop executing. j="<<j<<endl;

if(i==3)

break; // break out of inner loop.

}

if(i==3)

break; // break out of outer loop.

cout<<"\tInner loop finished."<<endl;

}

cout<<"Outer loop finished."<<endl<<endl;

}

void UseGoto()

{

cout<<"UseGoto() executing..."<<endl;

int i, j;

for(i=0;i<10;++i)

{

cout<<"Outer loop executing. i="<<i<<endl;

for(j=0;j<2;j++)

{

cout<<"\tInner loop executing. j="<<j<<endl;

if(i==3)

goto stop; // jump out of both loops.

}

cout<<"\tInner loop finished."<<endl;

}

stop:

cout<<"Outer loop finished."<<endl<<endl;

}

int main()

{

UseBreak();

UseGoto();

return(0);

}

Output:

UseBreak() executing...

Outer loop executing. i=0

Inner loop executing. j=0

Inner loop executing. j=1

Inner loop finished.

Outer loop executing. i=1

Inner loop executing. j=0

Inner loop executing. j=1

Inner loop finished.

Outer loop executing. i=2

Inner loop executing. j=0

Inner loop executing. j=1

Inner loop finished.

Outer loop executing. i=3

Inner loop executing. j=0

Outer loop finished.

UseGoto() executing...

Outer loop executing. i=0

Inner loop executing. j=0

Inner loop executing. j=1

Inner loop finished.

Outer loop executing. i=1

Inner loop executing. j=0

Inner loop executing. j=1

Inner loop finished.

Outer loop executing. i=2

Inner loop executing. j=0

Inner loop executing. j=1

Inner loop finished.

Outer loop executing. i=3

Inner loop executing. j=0

Outer loop finished.

User Avatar

Wiki User

11y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What are labels in Cpp and can you give some examples?
Write your answer...
Submit
Still have questions?
magnify glass
imp