是/否总是选择第一个选项(C ++)

时间:2017-12-18 19:42:23

标签: c++

我是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:添加了预期的输入和输出

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'){