Postingan lainnya
Kenapa "goto label" tidak berfungsi?
label_pilih:
std::cout << "Lanjut?(y/n) : ";
std::cin >> is_continue;
if ((is_continue == 'y') | (is_continue == 'Y')){
pilihan = getOption();
}else if ((is_continue == 'n') | (is_continue == 'N')){
break;
}else{
goto label_pilih;
}
2 Jawaban:
<div>Dari full-code-nya. <br>Ada break (untuk While), sebelum goto-nya.<br>Jadi sudah keluar dari While sebelum menjalankan goto-nya.<br><br>---<br>karena hanya potongan code saja.<br>agak sulit melihat error-nya.<br><br>Dan tampaknya bukan goto-nya.<br>modifikasi agar bisa melihat goto-nya berfungsi.</div><pre>#include <iostream> using namespace std;
int main() { char is_continue;
label_pilih:
cout &lt;&lt; "Lanjut?(y/n) : ";
cin &gt;&gt; is_continue;
if ((is_continue == 'y') | (is_continue == 'Y')){
//pilihan = getOption();
cout &lt;&lt; "Option";
} else if ((is_continue == 'n') | (is_continue == 'N')){
//break;
cout &lt;&lt; "Break";
return 0;
} else {
cout &lt;&lt; "GOTO \n";
goto label_pilih;
}
}</pre>
Tanggapan
program di atasnya sebuah program switch case
<pre>#include <iostream> #include <string>
using namespace std;
int getOption(){ int input; system("cls");
std::cout &lt;&lt; "Program CRUD data Mahasiswa" &lt;&lt; std::endl;
std::cout &lt;&lt; "===========================" &lt;&lt; std::endl;
std::cout &lt;&lt; "1. Tambah data Mahasiswa" &lt;&lt; std::endl;
std::cout &lt;&lt; "2. Tampilkan data Mahasiswa" &lt;&lt; std::endl;
std::cout &lt;&lt; "3. Ubah data Mahasiswa" &lt;&lt; std::endl;
std::cout &lt;&lt; "4. Hapus data Mahasiswa" &lt;&lt; std::endl;
std::cout &lt;&lt; "5. Selesai" &lt;&lt; std::endl;
std::cout &lt;&lt; "===========================" &lt;&lt; std::endl;
std::cout &lt;&lt; "pilihan [1-5]? : ";
std::cin &gt;&gt; input;
return input;
}
int main(){
int pilihan = getOption();
char is_continue;
enum option{CREATE = 1, READ, UPDATE, DELETE, FINISH};
while(pilihan != FINISH){
switch (pilihan){
case CREATE:
std::cout &lt;&lt; "Menambahkan data Mahasiswa" &lt;&lt; std::endl;
break;
case READ:
std::cout &lt;&lt; "Tampilkan data Mahasiswa" &lt;&lt; std::endl;
break;
case UPDATE:
std::cout &lt;&lt; "Ubah data Mahasiswa" &lt;&lt; std::endl;
break;
case DELETE:
std::cout &lt;&lt; "Hapus data Mahasiswa" &lt;&lt; std::endl;
break;
default:
std::cout &lt;&lt; "Pilihan tidak ditemukan" &lt;&lt; std::endl;
break;
}
label_pilih:
std::cout &lt;&lt; "Lanjut?(y/n) : ";
std::cin &gt;&gt; is_continue;
if ((is_continue == 'y') | (is_continue == 'Y')){
pilihan = getOption();
}else if ((is_continue == 'n') | (is_continue == 'N')){
break;
}else{
break;
goto label_pilih;
}
}
std::cout &lt;&lt; "akhir dari Program" &lt;&lt; std::endl;
return 0;
} <br></pre>
Tanggapan
sorry ini full codenya
comment di-code ini ada di jawaban diatas.