Goto

Goto digunakan untuk melompat ke salah satu label di lingkup yang sama. Label adalah bagian program yang ditandai dengan tanda titik dua (:). Kalian bisa menggunakan bersama dengan percabangan. 

Jika kalian melompat mundur ke label sebelum goto, maka kegunaannya akan mirip dengan perulangan. Sebaliknya, kalian juga bisa menggunakannya untuk melompat ke depan.

#include <iostream>

using namespace std;

int main(){
	char opsi;
	awal:
	
	cout << "Pilih y atau n!" << endl;
	cin >> opsi;

	switch(opsi){
	    case 'y':
		cout << "Anda memilih yes";
		break;
	    case 'n':
		cout << "Anda memilih no";
	    	break;
	    default:
	        cout << "Anda harus memilih y atau n";
	}
	cout << endl;
	if(opsi!='y' && opsi!='n')goto awal;
        else goto keluar;
        keluar:
	return 0;
}
Contoh Program :
Pilih y atau n!
g
Anda harus memilih y atau n
Pilih y atau n!
h
Anda harus memilih y atau n
Pilih y atau n!
y
Anda memilih yes

Penulisan label mirip dengan case pada switch. Label minimal memerlukan satu statement setelahnya. Kalian tidak bisa meletakkan label di ujung function. Btw, penggunaan label keluar dan else pada contoh di atas bisa dibuang karena tidak ada pengaruh khusus pada program.

Penamaan label mirip dengan syarat penamaan identifier (nama variabel & function). Label harus di awali huruf dan tidak boleh menggunakan keyword.