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

Yes/No always pick the first option (C++)

本文关键字:选项 选择 第一个      更新时间:2023-10-16

我在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<<",00n";
        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<<",00n";

        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<<",00n"; // 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:添加了预期输入和输出

类似的东西?

char foo;
while(true)
{
    cout<<"again? ";
    cin<<foo;
    if(foo == 'N' || foo =='n')
        break;
    else
    {
        //Do important stuff 
    }
}
if (response == 'Y'||'y'){

此语句永远是正确的,使其成为:

if (response == 'Y'||response == 'y'){