我是C ++的新手。目前帮助我的妹妹这个。我正在制作标准的餐厅收银员计划,只需要一些代码来计算变更金额。最后,我想询问用户是继续还是退出。我正在使用goto语句,如果用户按Y它将返回,如果用户按N它将退出。
我的问题是代码只接受第一个(返回)选项。因此,如果我按N,程序将不会退出。你能帮我么?这是我最后的代码:
cout<<"again?";
cin>>response;
if (response == 'Y') {
goto a;
}
else if (response == 'N') {
exit(0);
}
编辑1
cout<<"\nAgain?";
cin>>response;
if (response == 'Y'||'y'){
main();
}
else if (response == 'N'||'n'){
exit(0);
}
编辑1 更改了代码,因此当用户按Y时它将返回到顶部。如果使用此代码段,如何退出循环?
cout<<"\nMasukan Jumlah Pembelian Untuk Menu A : "; //input for Menu A and B quantities
cin>>jml_menu_A;
hrg_menu1=menu_A*jml_menu_A; //calculation
cout<<"\nTotal Harga untuk Menu A : "<<menu_A<<" * "<<jml_menu_A<<" = Rp "<<hrg_menu1<<",00\n";
cout<<"\nMasukan Jumlah Pembelian Untuk Menu B : ";
cin>>jml_menu_B;
hrg_menu2=menu_B*jml_menu_B; //calculation
cout<<"\nTotal Harga untuk Menu B : "<<menu_B<<" * "<<jml_menu_B<<" = Rp "<<hrg_menu2<<",00\n";
ttal_bayar=ttal_hrg_menu_A+ttal_hrg_menu_B;
cout<<"\nMaka yang Harus Dibayarkan : "<<ttal_hrg_menu_A<<"+"<<ttal_hrg_menu_B<<"= Rp "<<ttal_bayar<<",00\n"; // total payment
//Bayar;
cout<<"\nMasukan Uang untuk pembayaran : ";
cin>>uang;
kembalian=uang-ttal_bayar; //total payment
{
if (uang>=ttal_bayar){ // change if the money is more
kembalian=uang-ttal_bayar;
cout<<"\nKembaliannya adalah..."<<kembalian<<" Rupiah..";
}
else if (uang<ttal_bayar){ // if the payment is less
kembalian=uang-ttal_bayar;
cout<<"\nMaaf Kembalian Anda Kurang";
}
}
cout<<"\nApakah ada transaksi lain?"; // confirm to start all over, or exit the program
cin>>response;
if (response == 'Y'||'y'){
main();
}
else if (response == 'N'||'n'){
exit(0);
}
}
编辑2:添加了预期的输入和输出
答案 0 :(得分:1)
这样的东西?
char foo;
while(true)
{
cout<<"again? ";
cin<<foo;
if(foo == 'N' || foo =='n')
break;
else
{
//Do important stuff
}
}
答案 1 :(得分:1)
if (response == 'Y'||'y'){
这句话永远是真的,成为:
if (response == 'Y'||response == 'y'){